`

自己封装对数据库的一些操作

 
阅读更多

dbconn.php

<?php
	class DBConn{
		private static $servername = "localhost";
		private static $username = "root";
		private static $password = "root";
		private static $conn = null;
		function __construct(){
			try{
				self::$conn = new PDO("mysql:host=".self::$servername.";dbname=aa", self::$username, self::$password);
				echo "conn";
			}catch(PDOException $e){
				echo $e->getMessage();
			}
		}
		
		public static function getInstance(){
			if(self::$conn == null){
				new DBConn();
			}
			
			return self::$conn;
		}
		
		//查询
		public function query($sql, $param){
			try{
				$conn = self::getInstance();
				$stmt = $conn->prepare("select * from user limit :a,:b");
				//$rows = $conn->query("select * from user limit 1,2")->fetchAll(PDO::FETCH_ASSOC);
				$param = array("a"=>1,"b"=>2);
				//$a = 1;
				//$b = 2;
				//$stmt->bindValue(":a", $a, PDO::PARAM_INT);
				//$stmt->bindValue(":b", $b, PDO::PARAM_INT);
				$this->bindArrayValue($stmt, $param);
				$stmt->execute();
				$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
				print_r($rows);
			}catch(PDOException $e){
				print $e->getMessage();
			}
		}
		
		public function insert($sql, $param){
			try{
				$conn = self::getInstance();
				$stmt = $conn->prepare("select * from user limit :a,:b");
				//$rows = $conn->query("select * from user limit 1,2")->fetchAll(PDO::FETCH_ASSOC);
				$param = array("a"=>1,"b"=>2);
			}catch(PDOException $e){
				print $e->getMessage();
			}
		}
		
		public function execParams($sql, $params) { 
			$conn = self::getInstance();
			$stmt = $conn->prepare("update user set password = ? and name = ?"); 
			$result = false; 
			if( $stm && $stm->execute(array(4, 6)) ) { 
			  $result = $stm->rowCount(); 
			  while( $stm->fetch(PDO::FETCH_ASSOC) ) {
				print_r $stm->fetch(PDO::FETCH_ASSOC);
			  } 
			} 
			return $result; 
		} 

		
		//绑定数据类型
		public function bindArrayValue($stmt, $array, $typeArray = false){
			if(is_object($stmt) && ($stmt instanceof PDOStatement)){
				foreach($array as $key => $value){
					if($typeArray){
						$stmt->bindValue(":$key",$value,$typeArray[$key]);
					}else{
						if(is_int($value)) $param = PDO::PARAM_INT;
						elseif(is_bool($value)) $param = PDO::PARAM_BOOL;
						elseif(is_null($value)) $param = PDO::PARAM_NULL;
						elseif(is_string($value)) $param = PDO::PARAM_STR;
						else $param = FALSE;
						
						if($param) $stmt->bindValue(":$key",$value,$param);
					}
				}
			}
		}
		
		
		
	}
?>

 

dbdelete.php

 

dbhandle.php

<?php
	header('content-type:text/html;charset=utf-8');
	try{
		$conn = new PDO("mysql:host=127.0.0.1;dbname=aa","root","root");
		$rows = $conn->query('select * from user')->fetchAll(PDO::FETCH_OBJ);
		$rs = array();
		foreach($rows as $row){
			$rs[] = $row;
		}
		$db = null;
	}catch(PDOException $e){
		print $e->getMessage();
		die();
	}
	print_r($rs);
	print "<br/>";
	try{
		$conn = new PDO("mysql:host=127.0.0.1;dbname=aa","root","root");
		$stmt = $conn->prepare("select * from user limit :a,:b");
		$param = array("a"=>0,"b"=>2);
		
		bindArrayValue($stmt, $param);
		
		
		$stmt->execute();
		$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
		print_r($rows);
	}catch(PDOException $e){
		print $e->getMessage();
	}
	
	function bindArrayValue($req, $array, $typeArray = false)
	{
		if(is_object($req) && ($req instanceof PDOStatement))
		{
			foreach($array as $key => $value)
			{
				if($typeArray)
					$req->bindValue(":$key",$value,$typeArray[$key]);
				else
				{
					if(is_int($value))
						$param = PDO::PARAM_INT;
					elseif(is_bool($value))
						$param = PDO::PARAM_BOOL;
					elseif(is_null($value))
						$param = PDO::PARAM_NULL;
					elseif(is_string($value))
						$param = PDO::PARAM_STR;
					else
						$param = FALSE;
						
					if($param)
						$req->bindValue(":$key",$value,$param);
				}
			}
		}
	}


	
?>

 

dbinsert.php

<?php
	include "dbconn.php";
	
	class UserDao{
		
		public function insert(){
			$conn = DBConn::getInstance();
			$sql = "insert into user(id, name, password, address) values('2','2','2','2')";
			$conn->exec($sql);
			echo "</br>insert";
		}
		
	}
	
	$userDao = new UserDao();
	$userDao->insert();

?>

 

dbtest.php

<?php
	require_once("dbconn.php");
	
	$dbhelper = new DBConn();
	
	$dbhelper->query();
	
	
	$dbhelper->execParams("sql", $data); 

?>

 

dbupdate.php

<?php
	include "dbconn.php";
	
	class UserService{
		
		public function update(){
			$conn = DBConn::getInstance();
			$sql = "update user set name=3 where id=1";
			$conn->exec($sql);
			echo "</br>update";
		}
		
	}
	
	$userService = new UserService();
	$userService->update();
?>

 

 

 

 

分享到:
评论

相关推荐

    封装了数据库访问操作

    此外,可能会包含事务管理功能,确保多条数据库操作的原子性和一致性。事务是数据库操作的基本单元,对于保持数据的一致性和完整性至关重要。例如,当一个操作涉及多个表或记录时,事务能够确保要么所有操作都成功,...

    PHP数据库操作的简易封装

    对PHP的数据库连接以及增查改删的简易封装,可以用来做小型的网站。

    封装各种数据库操作JAR

    封装数据库操作的JAR文件可能包含以下组件: - **连接池**:如C3P0、HikariCP或Apache DBCP,用于高效管理和复用数据库连接。 - **JDBC驱动**:针对每种数据库的Java Database Connectivity驱动,如ojdbc.jar...

    封装实现数据库的操作.rar

    通过DAO(Data Access Object)模式对数据库操作进行封装,Bean模式封装实体类,以及Util工具类来管理数据库连接与资源释放,这是一套常见的Java后端数据库操作基础架构。 首先,JDBC是Java语言和各种数据库之间的...

    Qt sqlite 数据库操作封装

    总结起来,Qt的SQLite数据库操作封装涉及到以下几个关键点: 1. 生成和打开数据库文件。 2. 执行SQL语句,包括查询、插入、更新和删除。 3. 设计接口,提供增删改查的重载功能。 4. 实现事务管理,确保数据一致性。 ...

    对数据库操作进行封装的java代码

    通过jdbc的方式访问数据库: 1.程序是整理的韩顺平oracle教学视频中的一个例子。 2.假设本机安装了oracle...4.程序对数据库操作进行了一定程度的封装,封装函数放在SQLHelper类中,在TestOracleCrud中对函数进行测试。

    服务端封装数据库操作客户端调用

    在IT行业中,服务端封装数据库操作并允许客户端调用是一种常见的设计模式,它有利于实现业务逻辑的解耦、代码复用以及系统间的高效协作。以下将详细解释这一过程中的关键知识点。 1. **服务端封装**:服务端,通常...

    windows关于qt的数据库操作封装类以及用例,c++代码

    windows 关于qt的数据库操作封装类 以及用例: SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它的功能特点有: 1. ACID事务 2. 零配置 – 无需安装和管理配置 3....

    android数据库操作封装

    考虑到数据安全和跨应用共享,可以使用`ContentProvider`来封装数据库操作。`ContentProvider`是一个标准的接口,使得其他应用能够访问和修改你的应用中的数据。 6. 使用ORM框架: 为了进一步简化数据库操作,...

    php封装数据库操作类.zip

    方便快捷, 数据库操作只需调用接口; 2.统一编码(utf8),不易导致乱码 3.结构清晰. 如处理前端请求的后台程序(test.php) 表封装类(user.class.php) 数据库封装类(db.class.php) 配置信息...

    .Net中的数据库操作封装

    此程序基于Visual studio 2005 英文版,主要是为了示例.net中用oledb方式对数据库操作(增删查改)的封装,包括了所有源码,适合入门者,我已调试无误(其中我基本上未进行容错处理,因为此程序的主要目的是对数据库的...

    数据库的封装操作

    总的来说,这个实例通过封装数据库操作,实现了代码的模块化,提高了代码的可读性和可维护性,是Java开发中常见的实践。通过阅读和理解源代码,我们可以学习到如何优雅地处理数据库操作,以及如何在实际项目中应用...

    php数据库操作封装类.zip

    在PHP开发中,数据库操作是不可或缺的一部分,为了提高代码的可维护性和复用性,开发者通常会将数据库操作封装成类。...下载并研究"php数据库操作封装类.zip"中的代码,将有助于加深对PHP数据库操作的理解和实践。

    用QT封装的操作各类数据库的接口类

    本项目通过QT封装了对多种数据库的接口类,包括SQL Server、MySQL、SQLite和ODBC,使得开发者能够更加方便地在QT环境中进行数据库操作。 首先,`DBHelper`类是整个系统的中心,它负责提供与各种数据库交互的通用...

    一款封装java访问数据库的底层数据库操作的jar

    标题中的“一款封装java访问数据库的底层数据库操作的jar”指的是一个Java库,它将数据库交互的底层细节进行了抽象和封装,使得开发者可以更高效、更便捷地在Java应用程序中进行数据库操作。这样的库通常会包含一...

    用OO的思路封装MYSQL数据库操作

    标题“用OO的思路封装MYSQL数据库操作”暗示我们将通过创建类来实现对MySQL数据库的抽象,以提高代码的可读性和可维护性。具体来说,我们可以设计一个数据库连接类,一个SQL语句执行类,甚至一个结果集处理类,每个...

    封装多种数据库通用访问类

    ASP.NET 2.0 是一个用于构建 Web 应用程序的开发框架,它提供了丰富的工具和库,包括对数据库操作的支持。在这个框架下,我们可以创建一个通用的数据访问类,以处理诸如 ACCESS、Oracle 和 SQL Server 这样的不同...

    C#数据库操作封装

    C#数据库操作封装,主要应用C#开发上位机对SQL Server数据的读写操作进行封装。

    Java数据库操作封装类

    为了简化这一过程并提高代码的可维护性和复用性,开发者通常会创建数据库操作的封装类。这样的类能够处理与数据库连接、查询、更新、插入和删除等相关的任务,使得业务逻辑代码更加专注于业务本身,而不是数据库交互...

    自己写的java对数据库操作的功能一个简单封装

    这个“自己写的java对数据库操作的功能一个简单封装”旨在提供一个基础且实用的工具集,方便开发者执行常见的数据库交互任务,如连接、查询、以及更新和删除数据。 首先,让我们详细探讨数据库连接。在Java中,我们...

Global site tag (gtag.js) - Google Analytics