pdo中的预处理语法
什么叫预处理语法就是,为了“重复执行”多条结构类似的sql语句,而将该sql语句的形式“进行预先处理”(编译);
该sql语句的“形式”中,含有“未给定的数据项”。
然后,到正式执行的时候,只要给定相应的形式上的“数据项”,就可以更快速方便执行。
比如(有两种预定义语法):
语法1:
$sql = “select * from tab where id = ? “; //这里这个“?”就是未给定的数据项;这里通常叫做“占位符”
//也可以是多个问好。
语法2:
$sql = “select * from tab where id = :v1 and name = :v2 “; //这里这个“:v1”和 “:v2” 就是未给定的数据项;通常这里叫做“命名参数”;
怎么使用?
分3步:
1,对含预处理语法的sql语句进行“预处理”:
$stmt = $pdo->prepare($sql ); //
2, 对上述预处理的结果对象($stmt)的未赋值数据,进行赋值:
$stmt->bindValue( 数据项1, 值1);
$stmt->bindValue( 数据项2, 值2);
。。。。。。
3, 执行执行:
$stmt->execute();
这样之后,该sql语句就算正式完成!
<?php
header("content-type:text/html; charset=utf-8");
//实例化pdo对象
$pdo=newPDO("mysql:host=127.0.0.1;port=3306;dbname=test;","root","888888");
//通过query函数执行sql命令
$pdo->query("set names utf8");
//插入数据
$sql="insert into persons (name,age) values (?, ?);";
$preObj=$pdo->prepare($sql);
$res=$preObj->execute(array("小明",22));
var_dump($res);
//删除数据
$sql="delete from persons where id = ?";
$preObj=$pdo->prepare($sql);
$res=$preObj->execute(array(3));
var_dump($res);
//修改数据
$sql="update persons set name = ? where id = ?;";
$preObj=$pdo->prepare($sql);
$res=$preObj->execute(array("lucy",5));
var_dump($res);
//查询数据
$sql="select * from persons where age > ? order by id desc;";
$preObj=$pdo->prepare($sql);
$preObj->execute(array(20));
$arr=$preObj->fetchAll(PDO::FETCH_ASSOC);
/*
* FETCH_BOTH 是默认的,可省,返回关联和索引。
* FETCH_ASSOC 参数决定返回的只有关联数组。
* PDO::FETCH_NUM 返回索引数组
* PDO::FETCH_OBJ 返回由对象组成的二维数组
*/
print_r($arr);
以上是 pdo中的预处理语法 的全部内容, 来源链接: utcz.com/z/532822.html