Php 准备好的声明mysqli

Php 准备好的声明mysqli,php,mysqli,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 = $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();
或者类似的。我记得我读过一篇文章,你可以用前缀为“:”的特定名称来调用vars。但我真的找不到这样的例子。我读了php手册,却找不到这方面的任何示例。 这是对的还是我梦到的

常见问题解答

如果您想知道为什么我不能简单地使用“?”方法:

$stmt = $db->prepare("INSERT INTO {$table} (?, ?, ?, ?, ?, ?) VALUES (?, ?, ?, ?, ?, ?)");

这很难写。

您不能在列名列表和值列表中同时执行
:var1
:var2
:varX
。其次,PDO接受命名参数绑定


请参阅和中的示例。

您不能在列名列表和值列表中执行
:var1
:var2
:varX
。其次,PDO接受命名参数绑定


请参阅。

Pigarelli中的示例-您指的是
select@current_time:=NOW();选择@current_time?PS:不太确定是否允许在列上绑定Pigarelli-您指的是
select@current_time:=NOW();选择@current_time?PS:不太确定是否允许在列上绑定