是否可以在准备好的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变量。有任何帮助或建议吗?
答案 0 :(得分: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
开始。