"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."

Now this is a really stupid error. (yes that sums up the error S T U P I D)

I am making an update to columns via stored variables.


"UPDATE table SET a = a + $a, b = b + $b, c = c + $c, d = d + $d, e = e + $e"

Note: This goes on for at least 10 columns not 5 like I have here

Now as im tryign to debug the error I cut out the C/D variables and it works! (It also works if I just change $c/$d to 0/0)

Anyways this is utterly stupid and dont know why this is happening...
I have been on this for days and days and refused to show anyone this stupid error for fear oh my own stupidity but oh well :(

Anyways any help?

Thanks, Regards X

8 Years
Discussion Span
Last Post by OmniX

Heh.. maybe "c" and "d" are varchar fields and the rest are integer fields ? Simplest way to debug this problem is to print out the query and see what does it have at the runtime. Then execute it in phpmyadmin or mysql console. Doing so, you will know where exactly is the error.
Note: Varchar fields need to be wrapped within single quotes while integer fields dont need single quotes.


hey i think u divide the problem into pieces..in the update command there should be the table name ....
print the variable and check shether simple insertion occurs or not. then before u write the query write a=$a+a b=$b+b etc
then simple insert the values a, b

debug it like that...with the help of the manual..


Field Type Collation Attributes Null Default Extra Action
a int(2) Yes 0

they all have the same structure, thats copied and pasted straight from phpMyAdmin.

But like I said I dont understand why they work on one column and not the other.

Ill test the missing values theory, but I very much doubt that is the problem as if there was no value in $a/b there would be no error.


See the missing values theory was wrong, but it lead me to go test the variables throughly and i solved it. Thanks!

In short said the variable had the wrong value (which it did not but anyways...) so I gave them all a default value of 0 at the start and override them with the real value and its working for the time being!

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.