php pdo数据库操作-预处理,PDO预处理连接数据库,添加操作,更新操作

实例

header("Content-type: text/html; charset=utf-8");

/医院

* PDO预处理更新操作

* PDO的预处理使用的是PDOStatement对象

* $pdo->prepare()创建stmt对象

* sql语句中的占位符全部采用:命名占位符,不用?

*/

//1.连接数据库

require 'pdo_connect.php';

//2.sql语句 UPDATE user SET name =:name,email=:email,password=sha1(:password)

$sql="UPDATE `user` SET `user_name`=:user_name,`email`=:email,`password`=sha1(:password) WHERE `user_id`=:user_id";

//3.创建PDO预处理对象stmt

$stmt=$pdo->prepare($sql);

//4.要更新的数据

$data=['user_name'=>'孔明','email'=>'km@qq.com','password'=>'333','user_id'=>1];

/*

* 4.1绑定变量到预处理对象:SQL语句对象

* $stmt->bindParam(参数,变量,类型)

*/

//$stmt->bindParam(':name',$data['user_name'],PDO::PARAM_STR);

//$stmt->bindParam(':email',$data['email'],PDO::PARAM_STR);

//$stmt->bindParam(':password',$data['password'],PDO::PARAM_STR);

//5.执行操作

if($stmt->execute($data))

{

//成功会返回受影响的记录数

echo '

更新了'.$stmt->rowCount().'条记录

';

}else{

echo '

更新失败

';

print_r($stmt->errorInfo());

die();

}

运行实例 »

点击 "运行实例" 按钮查看在线实例

总结:

在生成网页时,许多PHP脚本通常都会执行除参数之外,其他部分完全相同的查询语句,针对这种重复执行一个查询,每次迭代使用不同的参数情况,PDO提供了一种名为预处理语句(prepared statement)的机制。它可以将整个SQL命令向数据库服务器发送一次,以后只有参数发生变化,数据库服务器只需对命令的结构做一次分析就够了,即编译一次,可以多次执行。会在服务器上缓存查询的语句和执行过程,而只在服务器和客户端之间传输有变化的列值,以此来消除这些额外的开销。这不仅大大减少了需要传输的数据量,还提高了命令的处理效率。可以有效防止SQL注入,在执行单个查询时快于直接使用query()或exec()的方法,速度快且安全

PDO对预处理语句的支持需要使用PDOStatement类对象,但该类的对象并不是通过NEW关键字实例化出来的,而是通过执行PDO对象的prepare()方法,在数据库服务器中准备好一个预处理的SQL语句后直接返回的。如果通过之前执行PDO对象的query()方法返回的PDOStatement类对象,只代表的是一个结果集对象。而如果通过执行PDO对象中的prepare()方法产生的PDOStatement类对象,则为一个查询对象,能定义和执行参数化的SQL命令

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值