PDO之数据库常用函数的封装(4-16)-2018年5月7日17点
程序员文章站
2024-04-04 22:13:11
...
注意点:
数据库的连接,增删查改参数的条件使用及语句的拼接,需测试语句是否完整一避免php报错。
数据库操作函数库测试脚本
<?php /** * 数据库操作函数库测试脚本 */ //1,连接测试 // $dbname,$type='mysql',$host='127.0.0.1',$charset='utf8',$port=3306,$user='root',$pass='root' require 'lib/func_pdo.php'; $type='mysql'; $host='127.0.0.1'; $dbname='php'; $charset='utf8'; $port=3306; $user='root'; $pass='root'; $pdo =connect($dbname,$type,$host,$charset,$port,$user,$pass); //2,新增测试 // $table='perm'; // $data=['name'=>'noc','value'=>'AAc']; // insert($pdo,$table,$data); //3,更新测试 // $table='perm'; // $data=['name'=>'noc','value'=>'BBB']; // $where='id=26'; // update($pdo,$table,$data,$where); //4,单条查询测试 // $table ='perm'; // $fields=['name','value']; // $fields='*'; // $fields='name,value'; // $where='id<40'; // echo '<pre>'.print_r(find($pdo,$table,$fields,$where),true).'</pre>'; //4,多条查询测试 // $table ='perm'; // $fields=['name','value']; // $fields='*'; // $fields='name,value'; // $where='id<10'; // $order='id ASC'; // echo '<pre>'.print_r(select($pdo,$table,$fields,$where,$order),true).'</pre>'; //5,删除测试 $table ='perm'; $where='id = 69'; delete($pdo,$table,$where);
PDO数据库操作函数库:
<?php /*******PDO数据库操作函数库*******/ //连接数据库 if(!function_exists('connect')){ /** * 连接数据库 * @param [type] $dbname [description] * @param string $type [description] * @param string $host [description] * @param string $charset [description] * @param integer $port [description] * @return [type] [description] */ function connect($dbname,$type='mysql',$host='127.0.0.1',$charset='utf8',$port=3306,$user='root',$pass='root') { $dsn = "{$type}:host={$host}; dbname={$dbname}; charset={$charset}; port={$port}";//数据源 $userName = $user; $password = $pass; //配置连接属性 $options = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, //设置错误模式 PDO::ATTR_CASE => PDO::CASE_NATURAL, //数据表字段保持不变 PDO::ATTR_EMULATE_PREPARES => true, //启用PDO模拟 PDO::ATTR_PERSISTENT => true, //启用持久性连接 ]; try { //实例化PDO类,创建PDO对象 $pdo = new PDO($dsn, $userName, $password, $options); // echo 'ok'; } catch (PDOException $e) { print('连接错误'.$e->getMessage()); die(); } return $pdo; }} //新增数据 if(!function_exists('insert')){ /** * 新增数据 * @param [type] $pdo [description] * @param [type] $table [description] * @param array $data [description] * @return [type] [description] */ function insert($pdo,$table,$data=[]) { // 创建SQL语句 // insert ignore staff set name =:name,salary=:salary $sql ="INSERT IGNORE {$table} SET "; foreach (array_keys($data) as $field) { $sql.=$field.'=:'.$field.','; } $sql=rtrim(trim($sql),',').';'; // die($sql); //INSERT IGNORE perm SET name=:name,value=:value, //创建stmt对象 $stmt = $pdo ->prepare($sql); //绑定参数到预处理对象 foreach($data as $field =>$value){ $stmt->bindValue(":{$field}",$value); } //执行新增 if($stmt->execute()){ if($stmt->rowCount()>0){ return true; }else{ return false; } } }} //更新操作 if(!function_exists('update')){ /** * 更新数据 * [update description] * @param [type] $pdo [description] * @param [type] $table [description] * @param array $data [description] * @param string $where [description] * @return [type] [description] */ function update($pdo,$table,$data=[],$where='') { // 创建SQL语句 $sql ="UPDATE {$table} SET "; foreach (array_keys($data) as $field) { $sql.=$field.'=:'.$field.','; } $sql=rtrim(trim($sql),','); //添加更新条件 if(!empty($where)){ $sql .=' WHERE '.$where .';'; }else{ exit('条件不能为空'); } // die($sql); //INSERT IGNORE perm SET name=:name,value=:value, //创建stmt对象 $stmt = $pdo ->prepare($sql); //绑定参数到预处理对象 foreach($data as $field =>$value){ $stmt->bindValue(":{$field}",$value); } //执行更新 if($stmt->execute()){ if($stmt->rowCount()>0){ return true; }else{ return false; } } }} //查询单条操作 if(!function_exists('find')){ /** * 查询单条语句 * @param [type] $pdo [description] * @param [type] $table [description] * @param [type] $fields [description] * @param string $where [description] * @return [type] [description] */ function find($pdo,$table,$fields,$where='') { // 创建SQL语句 // select name,value from prem where ; $sql ="SELECT "; if (is_array($fields)){ foreach($fields as $field){ $sql .=$field. ','; } }else{ $sql .=$fields. ','; } $sql= rtrim(trim($sql),','); $sql .=' FROM '.$table; if(!empty($where)){ $sql .=' WHERE '.$where; } $sql .=' LIMIT 1'; $sql= rtrim(trim($sql),',').';'; // die($sql); //创建STMT对象 $stmt =$pdo->prepare($sql); if($stmt->execute()){ if($stmt->rowCount()>0){ $stmt->setFetchMode(PDO::FETCH_ASSOC); return $stmt->fetch(); } }else{ return false; } } } //查询多条操作 if(!function_exists('select')){ /** * 查询多条语句 * @param [type] $pdo [description] * @param [type] $table [description] * @param [type] $fields [description] * @param string $where [description] * @return [type] [description] */ function select($pdo,$table,$fields,$where='',$oder='') { // 创建SQL语句 // select name,value from prem where ; $sql ="SELECT "; if (is_array($fields)){ foreach($fields as $field){ $sql .=$field. ','; } }else{ $sql .=$fields. ','; } $sql= rtrim(trim($sql),','); $sql .=' FROM '.$table; if(!empty($where)){ $sql .=' WHERE '.$where; } if(!empty($oder)){ $sql .=' ORDER BY '.$oder; } $sql= rtrim(trim($sql),',').';'; // die($sql); //创建STMT对象 $stmt =$pdo->prepare($sql); if($stmt->execute()){ if($stmt->rowCount()>0){ $stmt->setFetchMode(PDO::FETCH_ASSOC); return $stmt->fetchALL(); } }else{ return false; } } } //删除操作 if(!function_exists('delete')){ /** * 删除数据 * [update description] * @param [type] $pdo [description] * @param [type] $table [description] * @param array $data [description] * @param string $where [description] * @return [type] [description] */ function delete($pdo,$table,$where='') { // 创建SQL语句 $sql ="DELETE FROM {$table}"; //添加删除条件 if(!empty($where)){ $sql .=' WHERE '.$where .';'; }else{ exit('条件不能为空'); } // die($sql); //INSERT IGNORE perm SET name=:name,value=:value, //创建stmt对象 $stmt = $pdo ->prepare($sql); //执行删除 if($stmt->execute()){ if($stmt->rowCount()>0){ return true; }else{ return false; } } }}
上一篇: javascript对象分为哪两大类