穗渐陌具煤叭蹿死套取川想合
修改库函数:
<?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; } } } //查询单条记录 if(!function_exists('find')) { function find($pdo,$table,$fields,$where='') { //$fields:字段列表,sql语句类似:select name,salary from staff where //name,salary即为字段 //创建sql语句 //目标sql语句类似:select name,salary from staff where $sql="select "; if(is_array($fields))//如果是数组,遍历数组拼接sql语句 { foreach($fields as $field) { $sql .= $field . ","; } } else//如果不是数字,是字符串,直接拼接SQL语句 { $sql .= $fields . ","; } die($sql); } }
修改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); //4.单条查询测试 $table="staff"; //单条查询需要能够处理以下方式提交的字段信息 $fields=['name','age','salary']; $fields="*"; $fields="name,age,salary"; $where = "age < 40"; find($pdo,$table,$fields,$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; } } } //查询单条记录 注意:只查询当前表中满足条件的第一条记录 if(!function_exists('find')) { function find($pdo,$table,$fields,$where='') { //$fields:字段列表,sql语句类似:select name,salary from staff where //name,salary即为字段 //创建sql语句 //目标sql语句类似:select name,salary from staff where $sql="select "; if(is_array($fields))//如果是数组,遍历数组拼接sql语句 { foreach($fields as $field) { $sql .= $field . ","; } } else//如果不是数字,是字符串,直接拼接SQL语句 { $sql .= $fields . ","; } //去除SQL语句左右的空格,再去除最后面的逗号 $sql=rtrim(trim($sql),','); $sql.=" from ".$table; if(!empty($where)) { $sql.=" where ".$where." limit 1";//只查询单条数据 } //去除SQL语句左右的空格,再去除最后面的逗号 再加上分号 $sql=rtrim(trim($sql),',').";"; //创建stmt对象 $stmt=$pdo->prepare($sql); //执行sql语句 if($stmt->execute()) { if($stmt->rowCount()>0) { $stmt->setFetchMode(PDO::FETCH_ASSOC); return $stmt->fetch();//成功则返回结果集的数组 } } else { return false; } } }
修改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); //4.单条查询测试 $table="staff"; //单条查询需要能够处理以下方式提交的字段信息 $fields=['name','age','salary']; $fields="*"; $fields="name,age,salary"; $where = "age < 40"; echo "<pre/>"; print_r(find($pdo,$table,$fields,$where));
执行:
修片捅腥衬坏蒜夯峡罐枢骗将