视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
PDO增删查改操作类_MySQL
2020-11-09 19:59:10 责编:小采
文档


毕竟入门不久,之前写PHP+MySQL操作都是直接用原生PHP连接数据库进行操作,后来才知道还有PDO这种东西。

PDO扩展为PHP访问数据库定义了一个轻量级的、一致性的接口,它提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致的函数执行查询和获取数据。

下面是刚开始学PDO写的一个类,目前还不了解PDO跟原生比,有什么明显的优点,先把基本操作搞清楚,然后慢慢来。增删查改已满足:

/*** @abstract PDO study: PDO操作MySQL增删查改类* @date 2014/06/30* @author Silov[bluebird237@gmail.com]*/class mysqlPdoClass{	private $db;	private $db_name = 'study';//	private $db_serv;	private $db_user = 'root';	private $db_pass = 'root';	private $db_host = 'localhost';	//构造函数以及连接数据库	public function __construct( $username = 'root' , $password = 'root' , $connect = 'false'){	$this->db_serv = "mysql:dbname=".$this->db_name.";host=".$this->db_host.";charset=utf-8";	$this->db_user = $username;	$this->db_pass = $password;	}	//管理数据库,析构函数	public function __destruct(){	$this->db->close();	$this->db = null;	}	//执行SQL语句,返回值为sql执行结果	public function run_query($sql){	$this->db = new PDO($this->db_serv, $this->db_user, $this->db_pass);	$row = $this->db->query($sql);	$row->setFetchMode(PDO::FETCH_ASSOC);	//设置查询结果显示为键值对数组模式	return $row;	}	//执行SQL语句,返回值为sql影响行数	public function run_exec($sql){	$this->db = new PDO($this->db_serv, $this->db_user, $this->db_pass);	return $this->db->exec($sql);	}	/**	* @abstract 插入操作	* @param 	$table:表名; $data:插入数据键值对数组; 	* @return 	返回值:插入结果,boolean	*/	public function data_insert($table, $data, $return = true,$debug=false){	if(!$table) {	return false;	}	$fields = array();	$values = array();	foreach ($data as $field => $value){	$fields[] = '`'.$field.'`';	$values[] = "'".addslashes($value)."'";	}	if(empty($fields) || empty($values)) {	return false;	}	$sql = 'INSERT INTO `'.$table.'` 	('.join(',',$fields).') 	VALUES ('.join(',',$values).')';	if($debug){	return $sql;	}	$query = $this->run_exec($sql);	return $return ? $this->db->lastInsertId() : $query;	}	/**	* @abstract 更新操作	* @param 	$table:表名; $condition:更新查询条件; $data:更新数据键值对数组; $limit:更新数据条数上限	*	$debug:测试时给true,则不执行update,直接返回完整的sql语句	* @return 	返回值:插入结果,boolean	*/	public function data_update($table, $condition, $data, $limit = 1,$debug=false) {	if(!$table) {	return false;	}	$set = array();	foreach ($data as $field => $value) {	$set[] = '`'.$field.'`='."'".addslashes($value)."'";	}	if(empty($set)) {	return false;	}	$sql = 'UPDATE `'.$table.'` 	SET '.join(',',$set).' 	WHERE '.$condition.' '.	($limit ? 'LIMIT '.$limit : '');	if($debug){	return $sql;	}	return $this->run_exec($sql);	}	/**	* @abstract 查询单个字段值	* @param 	$sql:sql语句	* @return 	返回值:string	*/	public function getOne($sql){	$row = $this->run_query($sql);	$data = $row->fetch();	$data = array_shift($data);	return $data;	}	/**	* @abstract 查询单条记录,多个字段	* @param 	$sql:sql语句	* @return 	返回值:键值对数组	*/	public function getRow($sql){	$row = $this->run_query($sql);	$data = $row->fetch();	return $data;	}	/**	* @abstract 查询多条记录	* @param 	$sql:sql语句	* @return 	返回值:以键值对数组为元素的数组	*/	public function getRows($sql){	$row = $this->run_query($sql);	$data = $row->fetchAll();	return $data;	}}

下载本文
显示全文
专题