我有这样的代码:
$fields = $_POST;
$valueStrings = array();
foreach ($fields as $key => $value) {
array_push($valueStrings, $key . "=" . (string) $value);
// I also tried "$key = $value"
}
$updateRowQuery = "UPDATE ShoppingCart
SET " . implode(',', $valueStrings) . "
WHERE cartID = $cartID";
我得到错误:
Invalid query: Unknown column 'test' in 'field list', query is:
UPDATE ShoppingCart
SET shipToSameLocation=1,shipToSameLocation_shippingLocationID=5,shipToSameLocation_shippingMethod=test
WHERE cartID = 1405
如果我删除shipToSameLocation_shippingMethod
字段,它可以正常工作。我们可以看到,它的值test
(其他值也是)没有引号,尽管循环中有(字符串)类型转换。
我该怎么解决这个问题?
将所有值用引号括起来。你在那里不必要地铸造东西。MySQL会帮你解决的。