PDO预处理步骤:
- 先提取相同结构的SQL部分!将数据部分可变的部分去掉;
- 编译这个相同的结构,将编译结果保存;
- 再加不同的数据部分进行替换;
- 执行代码;
制作相同结构的SQL语句:
方法一:使用占位符“:value”来代替真正的数据:
$sql = "INSERT INTO student(name,age) values(:name,:age)";
方法二:使用占位符”?”来代替真正的数据:
$sql = "INSERT INTO student(name,age) values(?,?)";
预编译相同结构的SQL语句:
第一步:使用占位符“:value”来代替真正的数据:
$sql = "INSERT INTO student(name,age) values(:name,:age)";
第二步:预编译相同结构的SQL语句返回结果及对象:
$PDOStatement = $pdo->prepare($sql);
给占位符绑定真正的数据:
方法一:
$PDOStatement ->bindvalue(":name","酒淋后");
$PDOStatement ->bindvalue(":age",18);
方法二:
$PDOStatement ->bindvalue("1","酒淋后");
$PDOStatement ->bindvalue("2",18);
执行绑定数据的SQL语句:
$PDOStatement->exectute();
备注:
- 通过上一次编译SQL语句然后缓存,可以提高运行速度,减少编译次数;
- 防SQL注入;