PDO对预处理语句的支持需要使用PDOStatement类对象,但该类对象并不是通过NEW关键字实例化出来的,而是通过PDO对象中的prepare()方法,在数据库服务器中准备好一个预处理的SQL语句后直接返回的。如果通过之前执行PDO对象中的query()方法返回的PDOStatement类对象,只代表的是一个结果集对象。而如果通过执行PDO对象中的prepare()方法产生的PDOStatement类对象,则为一个查询对象,能定义和执行参数化的SQL命令。PDOStatement类中的全部成员方法如下所示:
01.
PDOStatement::bindColumn ― 绑定一列到一个 PHP 变量
02.
03.
PDOStatement::bindParam ― 绑定一个参数到指定的变量名
04.
05.
PDOStatement::bindValue ― 把一个值绑定到一个参数
06.
07.
PDOStatement::closeCursor ― 关闭游标,使语句能再次被执行。
08.
09.
PDOStatement::columnCount ― 返回结果集中的列数
10.
11.
PDOStatement::debugDumpParams ― 打印一条 SQL 预处理命令
12.
13.
PDOStatement::errorCode ― 获取跟上一次语句句柄操作相关的 SQLSTATE
14.
15.
PDOStatement::errorInfo ― 获取跟上一次语句句柄操作相关的扩展错误信息
16.
17.
PDOStatement::execute ― 执行一条预处理语句
18.
19.
PDOStatement::fetch ― 从结果集中获取下一行
20.
21.
PDOStatement::fetchAll ― 返回一个包含结果集中所有行的数组
22.
23.
PDOStatement::fetchColumn ― 从结果集中的下一行返回单独的一列。
24.
25.
PDOStatement::fetchObject ― 获取下一行并作为一个对象返回。
26.
27.
PDOStatement::getAttribute ― 检索一个语句属性
28.
29.
PDOStatement::getColumnMeta ― 返回结果集中一列的元数据
30.
31.
PDOStatement::nextRowset ― 在一个多行集语句句柄中推进到下一个行集
32.
33.
PDOStatement::rowCount ― 返回受上一个 SQL 语句影响的行数
34.
35.
PDOStatement::setAttribute ― 设置一个语句属性
36.
37.
PDOStatement::setFetchMode ― 为语句设置默认的获取模式。
使用命名参数作为占位符的INSERT插入语句:
$dbh->prepare(“insert into contactinfo(name,address,phone) values(:name,:address,:phone)”);
使用问号(?)参数作为占位符的INSERT插入语句:
$dbh->prepare(“insert into contactinfo(name,address,phone) values(?,?,?)”);