体梧猴斗躬势量片强垫唯替膳
修改库函数
<?php /** * pdo数据库操作函数库 */ //连接数据库 if(!function_exists('connect'))//如果函数connect不存在 { /**数据库连接 * @param $dbname * @param string $type * @param string $host * @param string $charset * @param int $port */ 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-catch()来捕获可能发生的错误 try{ $pdo=new PDO($dsn,$username,$password,$options); //一般情况这里还有throw(抛出)错误信息,但是这里不用,因为第4个参数已经强制抛出错误了 }catch(PDOException $e) { echo "连接错误:".$e->getMessage(); die();//连接错误是致命错误,必须停止脚本的执行 } return $pdo;//返回pdo对象 } } //新增数据 if(!function_exists('insert')) { /**新增数据 * @param $pdo * @param $table * @param array $data */ function insert($pdo,$table,$data=[]) { //创建sql语句 //目标sql语句类似:insert ignore staff set name=:name,salary=:salary $sql="insert ignore staff set "; // 遍历数组,将数组的键作为占位符 foreach (array_keys($data) as $field) { $sql.=$field."=:".$field.","; } //去除SQL语句左右的空格,再去除最后面的逗号 再加上分号 $sql=rtrim(trim($sql),',').";"; //创建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 flase; } } } //更新数据 if(!function_exists('update')) { /**更新数据 * @param $pdo * @param $table * @param array $data * @param string $where * @return bool */ function update($pdo,$table,$data=[],$where='') { //创建sql语句 //目标sql语句类似:insert ignore staff set name=:name,salary=:salary $sql="update staff set "; // 遍历数组,将数组的键作为占位符 foreach (array_keys($data) as $field) { $sql.=$field."=:".$field.","; } //去除SQL语句左右的空格,再去除最后面的逗号 $sql=rtrim(trim($sql),','); //添加更新条件 if(!empty($where)) { $sql.=" where ".$where; } else { exit('更新条件不能为空!'); } die($sql); //创建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 flase; } } }
修改demo.php
<?php /** * 数据库操作函数库测试脚本 */ require "lib/func_pdo.php";//引入库函数 //1.连接测试 $dbname="myuser"; $type="mysql"; $host="127.0.0.1"; $charset="utf8"; $port=3306; $user="root"; $pass="root"; $pdo=connect($dbname,$type,$host,$charset,$port,$user,$pass); //2.新增测试 //$table="staff"; //$data=['name'=>'mengmianren','sex'=>0,'age'=>22,'salary'=>4000]; //insert($pdo,$table,$data); //3.更新测试 $table="staff"; $data=['name'=>'萌面人','sex'=>0,'age'=>44,'salary'=>8000]; $where = "staff_id=60"; update($pdo,$table,$data,$where);
执行:
数据表结构,目标修改用户信息如下:
库函数:
<?php /** * pdo数据库操作函数库 */ //连接数据库 if(!function_exists('connect'))//如果函数connect不存在 { /**数据库连接 * @param $dbname * @param string $type * @param string $host * @param string $charset * @param int $port */ 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-catch()来捕获可能发生的错误 try{ $pdo=new PDO($dsn,$username,$password,$options); //一般情况这里还有throw(抛出)错误信息,但是这里不用,因为第4个参数已经强制抛出错误了 }catch(PDOException $e) { echo "连接错误:".$e->getMessage(); die();//连接错误是致命错误,必须停止脚本的执行 } return $pdo;//返回pdo对象 } } //新增数据 if(!function_exists('insert')) { /**新增数据 * @param $pdo * @param $table * @param array $data */ function insert($pdo,$table,$data=[]) { //创建sql语句 //目标sql语句类似:insert ignore staff set name=:name,salary=:salary $sql="insert ignore staff set "; // 遍历数组,将数组的键作为占位符 foreach (array_keys($data) as $field) { $sql.=$field."=:".$field.","; } //去除SQL语句左右的空格,再去除最后面的逗号 再加上分号 $sql=rtrim(trim($sql),',').";"; //创建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 flase; } } } //更新数据 if(!function_exists('update')) { /**更新数据 * @param $pdo * @param $table * @param array $data * @param string $where * @return bool */ function update($pdo,$table,$data=[],$where='') { //创建sql语句 //目标sql语句类似:insert ignore staff set name=:name,salary=:salary $sql="update staff set "; // 遍历数组,将数组的键作为占位符 foreach (array_keys($data) as $field) { $sql.=$field."=:".$field.","; } //去除SQL语句左右的空格,再去除最后面的逗号 $sql=rtrim(trim($sql),','); //添加更新条件 if(!empty($where)) { $sql.=" where ".$where; } else { exit('更新条件不能为空!'); } //去除SQL语句左右的空格,再去除最后面的逗号 再加上分号 $sql=rtrim(trim($sql),',').";"; //创建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 flase; } } }
demo.php
<?php /** * 数据库操作函数库测试脚本 */ require "lib/func_pdo.php";//引入库函数 //1.连接测试 $dbname="myuser"; $type="mysql"; $host="127.0.0.1"; $charset="utf8"; $port=3306; $user="root"; $pass="root"; $pdo=connect($dbname,$type,$host,$charset,$port,$user,$pass); //2.新增测试 //$table="staff"; //$data=['name'=>'mengmianren','sex'=>0,'age'=>22,'salary'=>4000]; //insert($pdo,$table,$data); //3.更新测试 $table="staff"; $data=['name'=>'萌面人','sex'=>0,'age'=>44,'salary'=>8000]; $where = "staff_id=60"; update($pdo,$table,$data,$where);
执行:
数据成功更新:
奔疵矾崔竿昆榷舞嗣吵膊餐锨