pdo结果集对象的预处理语法
1、do的结果集对象就是:$stmt = $pdo->query(“sql语句”);
所谓预处理语法,其实就是该“sql语句”中,有的部分并没有给出该有的数据,而是在后面再给。
比如:
$sql1 = “select * from user_list where id > ? and age < ?”; //2个问号,就是“未定数据”
或:
$sql2 = “insert into XXX( id, age, name, edu)values( null, ? , ?, ? )”;//有3个未定数据
则这种语句,就称为“预处理语句”(语法),其执行过程是这样的:
1,第1步:
$stmt = $pdo->prepare( $sql1 ); //得到“预处理结果集”,其实此时并没有实际数据,
//实际上,该语句目前并没有执行,而只是“预先编译处理”了
2,第2步:
给该预处理结果集中的未定数据进行“赋值”,比如:
$stmt->bindValue(1, 10); //对$sql1中的第一个问号赋值为10
$stmt->bindValue(2, 18); //对$sql1中的第2个问号赋值为18
3,第3步:
执行,此时该语句才算生效:
$stmt -> execute(); //执行。
举例:

2、示例2:
其实,作为sql语句,还有另一种形式,类似如下:
$sql1 = “select * from user_list where id > :v1 and age < :v2 ”;
//这里,:v1, :v2被称为“命名参数”,其实可以把它理解为“变量”(未定数据);
或:
$sql2 = “insert into XXX( id, age, name, edu )values( null, :age , :n , :ed )”;//有3个未定数据
//这里,有3个命名参数(未定数据);
则其赋值形式为:
$stmt->bindValue(“:v1”, 10); //对$sql1中的第一个问号赋值为10
$stmt->bindValue(“:v2”, 18); //对$sql1中的第2个问号赋值为18
然后,执行是一个的: $stmt->execute();