pdo mysql 增删_PDO增删查改操作类_MySQL

本文介绍了PDO扩展在PHP中用于MySQL数据库操作的优势,提供了一个简单的PDO类示例,涵盖增删查改基本操作。PDO提供了一致的接口,支持多种数据库,并且更安全,支持预处理语句防止SQL注入。通过这个类,开发者可以更方便地进行数据库交互。
摘要由CSDN通过智能技术生成

毕竟入门不久,之前写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;}}

相关标签:

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值