我变得痴迷。我第一次用准备好的声明工作,我确信我已经在某个地方读过你可以准备如下的声明:
$stmt = $db->prepare("INSERT INTO {$table} (:var1, :var2) VALUES (:val1, :val2)");
$stmt->bind_param(':var1', $var1);
$stmt->bind_param(':var2', $var2);
$stmt->bind_param(':val1', $val1);
$stmt->bind_param(':val2', $val2);
$stmt->execute();
或类似的东西。我记得我已经读过你可以用特殊名称调用带有':'作为前缀的变量。但我真的找不到那样的例子。我看了php手册,我找不到任何这个东西的样本。 是对还是我梦见过它?
常见问题
如果你想知道为什么我不能简单地使用'?'方法:
$stmt = $db->prepare("INSERT INTO {$table} (?, ?, ?, ?, ?, ?) VALUES (?, ?, ?, ?, ?, ?)");
这很难写。
答案 0 :(得分:1)
您无法在列名列表和:var1
列表中执行:var2
,:varX
,VALUES
。其次,PDO接受命名参数绑定。
请参阅PHP Data Objects中的PDO::prepare和示例。