php连接数据库关于PDO类和PDOStatement类的区别是什么
展开全部
这代表两个不同的对象,看一下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()方法真正执行。
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()方法真正执行。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询