传递给 PDOObject::bindParam 的变量需要先初始化


Do variables passed to PDOObject::bindParam need to be initialized first?

传递给bindParam的变量需要初始化吗?

编辑:真实用例

$user = 0; //IS THIS REQUIRED?
$stmt = $db->prepare("SELECT * FROM Blah WHERE something=?");
$stmt->bindParam(0, $user);
foreach($array as $user)
   $stmt->execute();

这取决于您绑定的参数类型。如果它是一个 out 参数,则无需初始化它。如果它是一个 ininout 参数,出于显而易见的原因,您需要对其进行初始化。

在您的情况下,您应该真正初始化它,因为您正在WHERE部分中使用它,即作为 in 参数。

从文档中:

bool PDOStatement::bindParam(mixed $parameter, mixed &$variable, ...)

variable - 要绑定到 SQL 语句参数的 PHP 变量的名称。