在准备好的语句中绑定太多变量的更短方法

Shorter way of binding too many variables in prepared statement

我在 PHP 中使用 CRUD 的预编译语句。我的代码片段:

$SQL="INSERT INTO Dress(DressID, Description, Size, Price, EntryDate, CategoryID, ColorID) 
            VALUES (?, ?, ?, ?, ?, ?, ?)
            ON DUPLICATE KEY UPDATE Description=?, Size=?, Price=?, EntryDate=?, CategoryID=?, ColorID=?";
        $stmt=$connection->prepare($SQL);
        $stmt->bind_param("ssssss", $ColorID, $Color, $Color);

然后,我必须重复 bind_param 函数中的变量绑定,例如 bind_param("sssssssss", $var1, $var2, $var1, $var2, $var3..)。 有什么办法可以缩短这个绑定吗?

您可以将参数传递给 ->execute() 方法,如下所示:

$stmt->execute([123, 'red', 'green', ... ]);

如果您将参数保存在一个数组中,而不是将它们分配给变量,那么将它们绑定到准备好的语句会变得相当简单。