返回 PDO预处理增...... 登陆

PDO预处理增删改操作(写)总结

李铁蛋 2018-11-28 15:36:00 270

一.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));
}

2.png

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条件 和绑定参数字符串格式的限制长度

3.png

三.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));
}

4.png

总结起来,PDO的预处理读写操作还是有一定规律的 , 第一步创建PDO对象连接数据库 (new PDO()), 第二步获取预处理对象STMT对象(其中要传入SQL语句)prepare($sql)  第三步 做参数绑定(SQL语句中的参数)bindParam()和bindValue() ,第四步 执行SQL语句execute()  第五步查询操作需要进行解析结果集 有fetch()while()搭配  或者fetchAll等等  写操作的话第五步就可以返回一个受影响的条数rowCount()或者错误信息了 errorInfo()  查询操作还需要一个第六步 对结果集进行遍历输出foreach() .基本操作就是这些了 ,继续练习!






最新手记推荐

• 用composer安装thinkphp框架的步骤 • 省市区接口说明 • 用thinkphp,后台新增栏目 • 管理员添加编辑删除 • 管理员添加编辑删除

全部回复(0)我要回复

暂无评论~
  • 取消 回复 发送
  • PHP中文网