pdo结果集对象的预处理语法

2026-01-14 05:20:47

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(); //执行。

举例:

pdo结果集对象的预处理语法

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();


声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢