学习笔记:PDO

本文介绍了PDO中的exec()和query()的区别,详细讲解了预处理语句的使用步骤,并演示了如何利用PDO进行事务处理及数据检索。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1

exec()和query()

 

 

PDO::exec()

只能执行insert update delete命令,返回值是影响的行数

 

PDO::query()

可以执行所有命令,不过建议只用来执行select,返回PDOStatement对象,可以理解为结果集

 

相同点

二者都可以设置通道编码 

2

PDO预处理步骤

 

 

a)构建预处理语句

如:insert into stu values(null,?,?),另外PDO支持这种格式,更直观insert into stu values(null,:name,:age);需要说明的是name和age并不一定和数据库字段名相同,可以理解为这只是一个占位标识而已.这条语句返回值是PDOStatement对象

 

b)绑定可变变量

可以使用bindParam(":name",$name),需要强调的是第二个参数只能是变量,第一个参数也可以用数字表示,表示第几个参数,从1开始.

绑定变量也可以用bindValue()方法,二者的区别是,bindValue的第二个参数必须是常量,如20

 

c)执行预处理语句execute()

如第一条笔记所说,如果执行的查询语句,返回的是PDOStatement类的类对象,预处理执行查询语句得到的结果集会直接放到这条语句的返回值中,比如$stmt = excute(...),结果集放到了$stmt中了

 

d)在取出结果时

可以使用$stmt->fetch(PDO::FETCH_BOUND),但是需要注意的是,如果用FETCH_BOUND前面必须对参数进行绑定,绑定方法:

$stmt->bindColumn("id",$id);

$stmt->bindColumn("name", $name);

此绑定方法只能用于结果取值,不能用于构建预处理语句的参数绑定

3

PDO事务处理

 

 

步骤

a)关闭自动提交

b)开启错误处理

c)try可以更好的处理错误和异常

d)开启事务处理$pdo->beginTransaction()

e)编写sql语句

f)执行语句,并获取影响的行数

g)验证是否是期望效果

h)提交或者回滚

i)开启自动提交(非必须)

j)释放pdo占用的内存

4

PDO取出数据

 

 

 

fetch(PDO::FETCH_ASSOC);之所以用双引号,是因为FETCH_ASSOC是PDO类的静态属性

fetchColumn(1);取得一行数据中的一列,比较省资源

附:

1

PDOStatement类

用于:获取结果集和实现预处理

原创作品,请勿转载,如确需转载请保持文章完整并注明出处,谢谢合作。

(许坤,php工程师,PHP工程师,互联网研发工程师,软件工程师)

原文地址:http://www.cnblogs.com/quinnxu/archive/2012/07/18/2597309.html

转载于:https://www.cnblogs.com/quinnxu/archive/2012/07/18/2597309.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值