satih
PHP:
mysql_query("update table1 set col1 = x1, col2 = x2");
здесь вы присваиваете строку col1 = x1
PHP:
mysql_query("update s3 set id = 4");
а здесь присваиваете число
первый запрос явно не выполнился ( возможно и при каких-то специфических настройках СУБД и будет работать, но в теории не должен)
ну а второй выполнятся так как там простое число ....
походу наглядный вариант зачем оно надо ....
в таблице есть 2 поля col1, и col2
к первому хотим присвоить следующую строку;
"qwe , sss = ddd + 333";
делаем это без кавычек
PHP:
mysql_query("update table1 set col1 = qwe , sss = ddd + 333, col2 = x2");
и таким образом у нас вместо обновления двух столбцов идет обновление троих col1 , sss, col2 ... а колонки sss в таблице то и нет ....
а если делать запрос с кавычками то в поле col1 запишется строка "qwe , sss = ddd + 333"; ....
----------------------------------------
короче, когда "SQL" видит кавычку в запросе " или ' она начинает тупо и бездумно пожирать все символы подряд пока не найдет закрывающую кавычку, и все что "сожрет" считает строкой ...
если же кавычки нет, то "SQL" попытается каким-то образом обработать символы, ....
попробует определить не являются ли символы каким-то математическим выражением ...
PHP:
mysql_query("update s3 set id = 4 +2 * 3");
какими-то функциями ....
может позапросом .. ..
PHP:
mysql_query("update s3 set id = SELECT id from t2 limit 1");
и так далее