一.PDO添加操作
+ rowCound()方法:返回受影响的记录数量
+ errorInfo()方法:返回出错信息(数组格式)
掌握了读操作,感觉写操作要更顺手一些 ,基本步骤几乎差不多 只是把SQL语句更换一下 不需要解析遍历结果集了 参数绑定一下写入的值就好了
INSERT INTO `表名`(`字段1`,`字段2`....) VALUES (:绑定参数1,:绑定参数2,....)
//PDO添加操作 //1创建PDO对象 连接数据库 $pdo = new PDO('mysql:host=127.0.0.1;dbname=php_edu;','root','root'); //2创建sql语句 $sql = 'INSERT INTO `user`(`name`,`email`,`password`,`status`,`create_time`) VALUES (:name, :email, :password, :status, :create_time)'; //3.验证SQL语句,创建出预处理对象 $stmt = $pdo->prepare($sql); //var_dump($stmt); //4.参数绑定 $name = '吕布'; //设置绑定的值变量 bindParam()只支持变量传入 $email = 'lvbu@163.com'; $password = sha1(123456); $status = 1; $createTime = time(); //开始绑定 并注意字符串格式需要限制长度 $stmt->bindParam(':name',$name,PDO::PARAM_STR,20); $stmt->bindParam(':email',$email,PDO::PARAM_STR,100); $stmt->bindParam(':password',$password,PDO::PARAM_STR,40); $stmt->bindParam(':status',$status,PDO::PARAM_INT); $stmt->bindParam(':create_time',$createTime,PDO::PARAM_INT); //5.执行sql 添加 if($stmt->execute()){ //执行成功才输出,错误则输出错误信息 echo ($stmt->rowCount()>0) ? '成功添加了'.$stmt->rowCount().'条数!' : '没有记录被添加'; }else{ exit(print_r($stmt->errorInfo(),true)); }
rowCount() 返回受影响的记录数 errorInfo返回错误信息 (数组)
二.PDO更新操作
+ rowCound()方法:返回受影响的记录数量
+ errorInfo()方法:返回出错信息(数组格式)
和添加操作几乎一样 ,只是将SQL语句更换,不过要注意的是一定要给出条件WHERE
UPDATE `表名` SET `字段1`=:绑定参数1, `字段2`=:绑定参数2,..... WHERE `条件字段` :绑定条件参数
//PDO更新操作 //1创建PDO对象 连接数据库 $pdo = new PDO('mysql:host=127.0.0.1;dbname=php_edu;','root','root'); //2创建sql语句 $sql = "UPDATE `user`SET `email`=:email, `create_time`=:createTime, `sex`=:sex, `age`=:age WHERE `user_id`=:user_id "; //3.验证SQL语句,创建出预处理对象 $stmt = $pdo->prepare($sql); //var_dump($stmt); //4.参数绑定 $id = 22; $email = 'lvbu@qq.com'; $password = sha1(123456); $sex = 0; $age = 25; $createTime = time(); //注意变量名和字符串的长度限制不要忘了 $stmt->bindParam(':user_id',$id,PDO::PARAM_INT); $stmt->bindParam(':email',$email,PDO::PARAM_STR,100); $stmt->bindParam(':sex',$sex,PDO::PARAM_INT); $stmt->bindParam(':age',$age,PDO::PARAM_INT); $stmt->bindParam(':createTime',$createTime,PDO::PARAM_INT); //5.执行sql 更新 if($stmt->execute()){ echo ($stmt->rowCount()>0) ? '成功更新了'.$stmt->rowCount().'条数!' : '没有记录被更新'; }else{ exit(print_r($stmt->errorInfo(),true)); }
和添加操作几乎相同,熟悉一下SQL语句,并一定要传入WHERE条件 和绑定参数字符串格式的限制长度
三.PDO删除操作
+ 删除操作是最危险的写操作;
+ 在实际开发过程,我们都是使用软删除实现
+ 软删除就是利用更新来模拟删除操作,通过添加删除标记字段来解决;
+ 删除操作,必须基于条件,绝对禁止无条件删除;
+ 如果想清空表中数据,请使用:TRUNCATE TABLE 命令
删除一定要有删除条件, 删除一定要有删除条件, 删除一定要有删除条件, 删除一定要有删除条件,
DELETE FROM `表名` WHERE `条件` :绑定参数
//PDO删除操作 //1创建PDO对象 连接数据库 $pdo = new PDO('mysql:host=127.0.0.1;dbname=php_edu;','root','root'); //2创建sql语句 $sql = "DELETE FROM `user` WHERE `user_id`=:user_id"; //一定要传WHERE //3.验证SQL语句,创建出预处理对象 $stmt = $pdo->prepare($sql); //var_dump($stmt); //4.参数绑定 $id = 20; $stmt->bindParam(':user_id',$id,PDO::PARAM_INT); //5.执行sql 更新 if($stmt->execute()){ echo ($stmt->rowCount()>0) ? '成功删除了'.$stmt->rowCount().'条数!' : '没有记录被删除'; }else{ exit(print_r($stmt->errorInfo(),true)); }
总结起来,PDO的预处理读写操作还是有一定规律的 , 第一步创建PDO对象连接数据库 (new PDO()), 第二步获取预处理对象STMT对象(其中要传入SQL语句)prepare($sql) 第三步 做参数绑定(SQL语句中的参数)bindParam()和bindValue() ,第四步 执行SQL语句execute() 第五步查询操作需要进行解析结果集 有fetch()while()搭配 或者fetchAll等等 写操作的话第五步就可以返回一个受影响的条数rowCount()或者错误信息了 errorInfo() 查询操作还需要一个第六步 对结果集进行遍历输出foreach() .基本操作就是这些了 ,继续练习!