恋马辫角素敞河称崎画淀铜筷
修改fun_pdo.php
代码:
<?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.","; } 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);
执行:
需要将sql语句最后的逗号改为分号
修改库函数,添加如下代码:
//去除SQL语句左右的空格,再去除最后面的逗号 再加上分号 $sql=rtrim(trim($sql),',').";"; die($sql);//设置断点查看数据
执行:
数据表原始结构:
修改库函数
<?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; } } }
执行demo.php
成功!
辽囱撼记祈钢冬挟猎叛侩肠纲