MySQL没有';t取PHP变量的字符串值(使用旧的mysql驱动程序)


MySQL doesn't take the string value of a PHP variable (With old mysql driver)

我有这样的代码:

    $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会帮你解决的。