首页> 基础笔记 >PHP基础学习 >PDO PDO
PDO对预处理语句的支持
作者:小萝卜 2019-09-10 【 PDO 】 浏览 1572
简介准备语句 绑定参数 执行预处理方式
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)
上一篇:PDO完整的预处理分方式代码分享
下一篇:使用PDO执行SQL语句