php连接数据库关于PDO类和PDOStatement类的区别是什么

 我来答
就烦条0o
2016-06-16 · 知道合伙人软件行家
就烦条0o
知道合伙人软件行家
采纳数:33315 获赞数:46493
从事多年系统运维,喜欢编写各种小程序和脚本。

向TA提问 私信TA
展开全部
这代表两个不同的对象,看一下PDO::query()的定义:

public PDOStatement PDO::query ( string $statement )

可以知道query返回的结果是PDOStatement实例对象,那么你至少可以知道PDOStatement可以用来操作结果集了。

看一下PDOStatement类有哪些方法:

http://php.net/manual/zh/class.pdostatement.php

发现有fetch,fetchAll等熟悉的功能,不是么?

然后再来看看PDO::prepare()方法

public PDOStatement PDO::prepare ( string $statement [, array $driver_options = array() ] )

它也是返回的PDOStatement,按照手册的说法,PDOStatement代表一条预处理语句,并在该语句被执行后代表一个相关的结果集。

也就是说,如果你通过PDO::query()直接查询,那么返回的PDOStatement就表示一个结果集。

如果你通过PDO::prepare()查询,实际上并未执行sql,而是得到一个预处理语句(PDOStatement),然后你调用PDOStatement::execute()方法真正执行。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式