首页> 基础笔记 >PHP基础学习 >PDO PDO

PDO对预处理语句的支持

作者:小萝卜 2019-09-10 浏览 1059

简介准备语句 绑定参数 执行预处理方式

PDO实现预处理分三部

准备语句->绑定参数->执行预处理方式


1.准备语句

得到pdo预处理对象的方法:     
 $sql=“select * from user order by id”;       $sth=$pdo->prepare($sql);       
以上代码中的$sth即为预处理对象
在PDO中参数式的SQL语句有两种(预处理sql):  
1.insert into stu(id,name) value(?,?); //?号式(适合参数少的)      
2.insert into stu(id,name) value(:id,:name);//别名式(适合参数多的)

2.绑定参数
绑定方式一:

$query = "INSERT INTO contactInfo (name, address, phone) VALUES (:name, :address, :phone)"; 
$stmt = $dbh->prepare($query); //调用PDO对象中的prepare()方法 

//第二个参数需要按引用传递,所以需要变量作为参数 
$stmt->bindParam(':name', $name); //将变量$name的引用绑定到准备好的查询名字参数’:name’中 
$stmt->bindParam(':address', $address);  //将变量address的引用绑定到查询的名字参数’:address’中 
$stmt->bindParam(':phone', $phone); //将变量phone的引用绑定到查询的名字参数’:phone’中 
$name = “张某某”;        //声明一个参数变量$name 
$address = “北京海淀区中关村”;  //声明一个参数变量$address 
$phone = "15801688988"; 	          //声明一个参数变量$phone
绑定方式二:
<?php 
   ... 
   $query = "INSERT INTO contactInfo (name, address, phone) VALUES (?, ?, ?)";
   $stmt = $dbh->prepare($query); //调用PDO对象中的prepare()方法 

   //第一个参数需要对应占位符号(?)的顺序 
   $stmt->bindParam(1, $name, PDO::PARAM_STR); //将变量$name绑定到查询中的第一个问号参数中 
   $stmt->bindParam(2, $address,PDO::PARAM_STR); //将变量$address绑定到查询的第二个问号参数中 
   $stmt->bindParam(3, $phone,PDO::PARAM_STR,20); //将变量$phone绑定到查询的第三个问号参数中

    $name = "张某某";           
    $address = "北京海淀区中关村"; 
    $phone = "15801688988"; 



3.执行预处理方式

处理方式一:

$query = "INSERT INTO contactInfo (name, address, phone) VALUES (?, ?, ?)"; $stmt = $dbh->prepare($query); 

//传递一个数组为预处理查询中的问号参数绑定值,并执行一次。 
$stmt->execute(array("赵某某", "海淀区", "15801688348"));   

//再次传递一个数组为预处理查询中的问号参数绑定值,并执行第二次插入数据。 $stmt->execute(array("孙某某", "宣武区", "15801688698"));
处理方式二:

$query = "INSERT INTO contactInfo (name, address, phone) VALUES (?, ?, ?)"; 
$stmt = $dbh->prepare($query); //调用PDO对象中的prepare()方法准备查询 
$stmt->bindParam(1, $name);   //将变量$name绑定到查询中的第一个问号参数中 
$stmt->bindParam(2, $address);   //将变量$address绑定到查询的第二个问号参数中 
$stmt->bindParam(3, $phone); //将变量$phone绑定到查询的第三个问号参数中 

$name = "赵某某"; //声明一个参数变量$name 
$address = "海淀区中关村"; //声明一个参数变量$address 
$phone = "15801688348"; //声明一个参数变量$phone 
$stmt->execute(); //执行参数被绑定值后的准备语句 

$name = "孙某某"; //为变量$name重新赋值 
$address = "宣武区"; //为变量$address重新赋值 
$phone = "15801688698"; //为变量$phone重新赋值 
$stmt->execute();   //再次执行参数被绑定值后的准备语句,插入第二条语句

很赞哦! (0)

文章评论

    高端网站建设