准备好的声明mysqli

时间:2010-12-06 13:03:16

标签: php mysqli

我变得痴迷。我第一次用准备好的声明工作,我确信我已经在某个地方读过你可以准备如下的声明:

$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 (?, ?, ?, ?, ?, ?)");

这很难写。

1 个答案:

答案 0 :(得分:1)

您无法在列名列表和:var1列表中执行:var2:varXVALUES。其次,PDO接受命名参数绑定。

请参阅PHP Data Objects中的PDO::prepare和示例。