PDO:在函数内使用绑定参数

PDO : using bound parameters inside a function

我正在使用 PDO 连接到 MySQL,但遇到如下问题: 鉴于该代码

$stmt = $conn->prepare($query);
$stmt->bindParam(':param0', $params[0]);
$stmt->bindParam(':param1', $params[1]);
$stmt->bindParam(':param2', $params[2]);

然后,我想调用一个函数 foo($stmt,...),如何在该函数中使用数组 $params 为 $params 数组的每个元素分配新值?

您需要通过引用将 $params 数组传递给函数,因为参数绑定到对调用方数组的引用。

function foo($stmt, &$params) {
    $params[0] = 1;
    $params[1] = "abc";
    $params[2] = "xxx";
    $stmt->execute();
}

$stmt = $conn->prepare($query);
$stmt->bindParam(':param0', $params[0]);
$stmt->bindParam(':param1', $params[1]);
$stmt->bindParam(':param2', $params[2]);
foo($stmt, $params);