16

I used this query to insert all my values into this database:

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

However, I try to use the same format for UPDATE:

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

...and am getting thrown a syntax error:

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

I can't figure it out. Would appreciate any help. Thanks.

Nick Rolando
  • 25,879
  • 13
  • 79
  • 119
Brett
  • 163
  • 1
  • 1
  • 4
  • 1
    The MySQL documentation is very useful: [UPDATE Syntax](http://dev.mysql.com/doc/refman/5.5/en/update.html) – Mike Jul 20 '11 at 16:41

3 Answers3

32

UPDATE syntax is different than INSERT syntax. An example of UPDATE would be:

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

Though this may be insecure. You should look into parameterized queries.

Nick Rolando
  • 25,879
  • 13
  • 79
  • 119
  • 3
    I basically ended up using this, just disappointed that I had to do it 23 times (amount of fields) – Brett Jul 20 '11 at 18:29
2
INSERT INTO products ($fields) VALUES ($values) ON DUPLICATE KEY UPDATE field = VALUES(field), ...

Don't forgot about unique or primary key

Pavel Zorin
  • 331
  • 6
  • 17
-5

you need an =

UPDATE products SET ($fields) = $values WHERE sku = '$checksku'
Tom Squires
  • 8,848
  • 12
  • 46
  • 72