【问题描述】:

我使用这个查询将我所有的值插入到这个数据库中:

INSERT INTO products ($fields) VALUES ($values)

但是,我尝试对 UPDATE 使用相同的格式:

UPDATE products SET ($fields) VALUES ($values) WHERE sku = '$checksku'

...并且出现语法错误:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '('product,make,model,' at line 1

我想不通。将不胜感激任何帮助。谢谢。

【问题讨论】:

标签: php mysql variables multiple-columns variable-assignment


【解答1】:

UPDATE 语法与 INSERT 语法不同。 UPDATE 的一个例子是:

"UPDATE products SET field1 = 'value1', field2 = '$val2', field3 = 5 WHERE sku = '$checksku'"  

虽然这可能不安全。你应该看看parameterized queries

【问题讨论】:

  • 我基本上最终使用了这个,只是对我不得不做 23 次(字段数量)感到失望
【解答2】:
INSERT INTO products ($fields) VALUES ($values) ON DUPLICATE KEY UPDATE field = VALUES(field), ...

不要忘记唯一键或主键

【问题讨论】:

    【解答3】:

    你需要一个 =

    UPDATE products SET ($fields) = $values WHERE sku = '$checksku'
    

    【问题讨论】:

    • 这不是有效的 MySQL 语法。