1

是否可以在准备好的 mySQL 查询中使用 PHP 变量,例如:

$stmt = $mysqli->prepare("UPDATE table SET $variable_field = ? WHERE field = ?");

它正在订购系统中使用 - 这样我就有一个存储购物车内容的会话。直到最后我才知道订购的商品总数。假设客户订购了 10 件商品 - 我需要将这些值插入 item_1、item_2、item_3 等。

我想达到的目标:

<<connect to DB>>
$x = 0;
while($x < count($order_contents)) {
    $stmt = $mysqli->prepare("UPDATE table SET item_$x = ? WHERE field = ?");
    $stmt->bind_param("ss", $order_contents[$x], $order_number);
    $stmt->execute();
    $x++;
}
<<close DB connection>>

差不多就是这样。问题是,我看不到它允许我直接在查询中指定 PHP 变量。有什么帮助或建议吗?

4

1 回答 1

1
$x = 0;
while($x < count($order_contents)) {
    $x++;
    $stmt = $mysqli->prepare('UPDATE table SET item_'.$x.' = ? WHERE field = ?');
    $stmt->bind_param("ss", $order_contents[$x], $order_number);
    $stmt->execute();
}

我也将 移到$x++循环的开头,因为您想从item_1.

于 2012-04-17T17:13:27.870 回答