这篇来说一下PDO预处理。
原理
本质上就是编译一次,多次执行。
PDO预处理语句(prepared statement)机制,是将一条SQL命令向数据库服务器发送一次(此时发送的参数不是实参,是占位符),以后参数发生变化,数据库服务器只需对命令的结构做一次分析就够了。
$stmt = $conn->prepare("insert into categorylink (did,cid) values (:did,:cid)"); 准备语句
foreach ($row as $key => $value) {
$arr = array(
':did' => intval($value['id']),
':cid' => $cid
); 参数数组
$result = $stmt->execute($arr); 执行语句
}
上面这是数组传参的方法,我一般常用这种方法。
除了使用数组来传递参数,还可以直接使用绑定参数的方法。
$stmt = $conn->prepare("insert into categorylink (did,cid) values (:did,:cid)"); 命名参数
$stmt = $conn->prepare("insert into categorylink (did,cid) values (?,?)"); ?参数
$stmt->bindParam(":did",'121');
$stmt->bindParam(":cid",'232'); 绑定命名参数
$stmt->bindParam("1",'121');
$stmt->bindParam("2",'232'); 绑定?参数
$stmt->execute(); 执行语句