首页 后端开发 php教程 我的PDO 类

我的PDO 类

Aug 08, 2016 am 09:28 AM
function gt public quot sql

<?php /*
public function db_insert($sql) 			#插入数据
public function db_delete($sql) 			#删除数据
public function db_update($sql) 			#更新数据
public function db_getOne($sql) 			#获取一条数据
public function db_getAll($sql) 			#获取多条数据
public function db_tran_start() 			#开启事务
public function db_tran_commit() 			#事务提交
public function db_tran_rollback() 			#事务回滚
public function db_prepare($sql ,$params ) 	        #预编译机制
*/

header("content-type:text/html;charset=utf-8");

class MePDO{
	// 定义属性
	private $dsn;
	private $user;
	private $password;
	private $pdo;

	//定义构造函数

	public function __construct($arr=array()){

		$this->dsn = isset($arr['dsn'])?$arr['dsn']:'mysql:host=localhost;dbname=project;';
		$this->user = isset($arr['user'])?$arr['user']:'root';
		$this->password = isset($arr['password'])?$arr['password']:'759114';
		$this->pdo= new PDO($this->dsn,$this->user,$this->password);           #实例化pdo对象
	}

	//利用PDO实现数据库操作
	/*
	@param  string  $sql  对sql语句进行判定
	*/
	private function _Exec($sql){
		try{									#进行错误处理

			$res = $this->pdo->exec($sql);
			if(!$res){							#语句错误,抛出异常
				throw new PDOException('出错啦!');
			}else{
				return $res;
			}
		}
		catch(PDOException $e){
			echo $e->getMessage();				     #输出异常信息
			echo "<br>";
			echo "错误所在行:".$e->getLine()."<br>";
			echo "错误编号:".$this->pdo->errorInfo()[1]."<br>";
			echo "错误信息:".$this->pdo->errorInfo()[2]."<br>";
			exit();
		}
	}

	// 进行插入操作
	/*
	* @param  string $sql
	*@return int 受影响行数
	*/
	public function db_insert($sql){
		$res = $this->_Exec($sql);				#执行操作
		return $this->pdo->lastInsertId();
	}

	// 进行插入操作
	/*
	* @param  string $sql
	*@return int 受影响行数
	*/
	public function db_delete($sql){
		$affected = $this->_Exec($sql);				#执行操作
		return $affected;
	}	


	//进行更新操作
	/*
		@param  string $sql  要插入的sql语句
		@retutn int 受影响的行数
	*/
	public function db_update($sql){
		$affected = $this->_Exec($sql);			#执行操作
		return $affected;						#返回受影响的行数
	}

	// 判断查询语句的语法是否正确
	private function Iserror($sql){
		try{
			//执行语句
			$res = $this->pdo->query($sql);
			if(!$res){							#语句错误,抛出异常
				throw new PDOException('出错啦!');
			}
			return $res;

			//语句正确
		}catch(PDOException $e){
			echo $e->getMessage();           	#输出错误信息
			echo "<br>";
			echo "错误所在行:".$e->getLine()."<br>";
			echo "错误编号:".$this->pdo->errorInfo()[1]."<br>";
			echo "错误信息:".$this->pdo->errorInfo()[2]."<br>";
			exit();
		}
	}

	//进行获取操作
	/*
		@param  string   $sql
		@return  array  返回一个数组
	*/
	public function db_getOne($sql){

		$stmt = $this->Iserror($sql);				 #执行sql 语句进行查询, 与exec 方法不同
		$row = $stmt->fetch(PDO::FETCH_ASSOC);   	 #返回一个关联数组
		return $row;
	}

	#获取多行数据
	/*
		@param  string  		$sql 		要执行的语句
		@return  array  		返回一个数组
	*/
	public function db_getAll($sql){
		$stmt = $this->Iserror($sql);
		$rows =$stmt->fetchAll($stmt,PDO::FETCH_ASSOC);
		return $rows;
	}

	//pdo 事务处理
	/*	Tran_start   开启事务
		@param    string     $sp  保存点,默认是sp1
		@return boolean
	*/
	public function db_tran_start($sp='sp1'){
		
		#执行语句,开启事务
		$res = $this->pdo->beginTransaction();	
		return true;
	}

	/*
		事务提交
		@return boolean  
	*/
	public function db_tran_commit(){
	
			$this->pdo->commit();		
	}

	//事务回滚
	public function db_tran_rollback(){
			$this->rollBack();		
	}

	//预编译处理
	/*
		@param  string   $sql       #sql 语句中使用 ? 作为占位符
		@param  array    $params
		@param  array    $arr   
	*/
	public function db_prepare($sql ,$params ){
		#prepare的 预编译语句不需要 Iserror判断
		$stmt = $this->pdo->prepare($sql);

		#执行语句
		$stmt->execute($params);
		$res = $stmt->fetchAll(PDO::FETCH_ASSOC);
		return $res;
	}
}
登录后复制

以上就介绍了我的PDO 类,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Hibernate 框架中 HQL 和 SQL 的区别是什么? Hibernate 框架中 HQL 和 SQL 的区别是什么? Apr 17, 2024 pm 02:57 PM

HQL和SQL在Hibernate框架中进行比较:HQL(1.面向对象语法,2.数据库无关的查询,3.类型安全),而SQL直接操作数据库(1.与数据库无关的标准,2.可执行复杂查询和数据操作)。

华为GT3 Pro和GT4的差异是什么? 华为GT3 Pro和GT4的差异是什么? Dec 29, 2023 pm 02:27 PM

许多用户在选择智能手表的时候都会选择的华为的品牌,其中华为GT3pro和GT4都是非常热门的选择,不少用户都很好奇华为GT3pro和GT4有什么区别,下面就就给大家介绍一下二者。华为GT3pro和GT4有什么区别一、外观GT4:46mm和41mm,材质是玻璃表镜+不锈钢机身+高分纤维后壳。GT3pro:46.6mm和42.9mm,材质是蓝宝石玻璃表镜+钛金属机身/陶瓷机身+陶瓷后壳二、健康GT4:采用最新的华为Truseen5.5+算法,结果会更加的精准。GT3pro:多了ECG心电图和血管及安

Oracle SQL中除法运算的用法 Oracle SQL中除法运算的用法 Mar 10, 2024 pm 03:06 PM

《OracleSQL中除法运算的用法》在OracleSQL中,除法运算是常见的数学运算之一。在数据查询和处理过程中,除法运算可以帮助我们计算字段之间的比例或者得出特定数值的逻辑关系。本文将介绍OracleSQL中除法运算的用法,并提供具体的代码示例。一、OracleSQL中除法运算的两种方式在OracleSQL中,除法运算可以使用两种不同的方式进行

Oracle和DB2的SQL语法比较与区别 Oracle和DB2的SQL语法比较与区别 Mar 11, 2024 pm 12:09 PM

Oracle和DB2是两个常用的关系型数据库管理系统,它们都有自己独特的SQL语法和特点。本文将针对Oracle和DB2的SQL语法进行比较与区别,并提供具体的代码示例。数据库连接在Oracle中,使用以下语句连接数据库:CONNECTusername/password@database而在DB2中,连接数据库的语句如下:CONNECTTOdataba

详解MyBatis动态SQL标签中的Set标签功能 详解MyBatis动态SQL标签中的Set标签功能 Feb 26, 2024 pm 07:48 PM

MyBatis动态SQL标签解读:Set标签用法详解MyBatis是一个优秀的持久层框架,它提供了丰富的动态SQL标签,可以灵活地构建数据库操作语句。其中,Set标签是用于生成UPDATE语句中SET子句的标签,在更新操作中非常常用。本文将详细解读MyBatis中Set标签的用法,以及通过具体的代码示例来演示其功能。什么是Set标签Set标签用于MyBati

SQL中的identity属性是什么意思? SQL中的identity属性是什么意思? Feb 19, 2024 am 11:24 AM

SQL中的Identity是什么,需要具体代码示例在SQL中,Identity是一种用于生成自增数字的特殊数据类型,它常用于唯一标识表中的每一行数据。Identity列通常与主键列配合使用,可以确保每条记录都有一个独一无二的标识符。本文将详细介绍Identity的使用方式以及一些实际的代码示例。Identity的基本使用方式在创建表时,可以使用Identit

SQL出现5120错误怎么解决 SQL出现5120错误怎么解决 Mar 06, 2024 pm 04:33 PM

解决办法:1、检查登录用户是否具有足够的权限来访问或操作该数据库,确保该用户具有正确的权限;2、检查SQL Server服务的帐户是否具有访问指定文件或文件夹的权限,确保该帐户具有足够的权限来读取和写入该文件或文件夹;3、检查指定的数据库文件是否已被其他进程打开或锁定,尝试关闭或释放该文件,并重新运行查询;4、尝试以管理员身份运行Management Studio等等。

如何使用SQL语句在MySQL中进行数据聚合和统计? 如何使用SQL语句在MySQL中进行数据聚合和统计? Dec 17, 2023 am 08:41 AM

如何使用SQL语句在MySQL中进行数据聚合和统计?在进行数据分析和统计时,数据聚合和统计是非常重要的步骤。MySQL作为一个功能强大的关系型数据库管理系统,提供了丰富的聚合和统计函数,可以很方便地进行数据聚合和统计操作。本文将介绍使用SQL语句在MySQL中进行数据聚合和统计的方法,并提供具体的代码示例。一、使用COUNT函数进行计数COUNT函数是最常用

See all articles