Да, ваш SQL выглядит так, когда его читает сервер MySQL:
UPDATE tbl_intmsg SET time = 26, 2009, 2:28 pm, by = shamil.nunhuck
AND content = Test message!
Как MySQL выяснить, что есть в этом утверждении?
Представьте, например, что вы установили для своего $ content значение 0, ГДЕ dummy = true. Тогда ваш SQL будет выглядеть так:
UPDATE tbl_intmsg SET time = 26, 2009, 2:28 pm, by = shamil.nunhuck
AND content = 0 WHERE dummy = true
Вы видите проблему? Как SQL может определить ваши данные и ключевые слова SQL?
Ответ: цитаты!
Ваш SQL должен выглядеть так:
UPDATE tbl_intmsg SET time = '26, 2009, 2:28 pm', by = 'shamil.nunhuck'
AND content = 'Test message!'
Ваша строка PHP-запроса PHP может выглядеть следующим образом:
$q="UPDATE tbl_intmsg SET time = '$dt', by = '$by' AND content = '$content'";
(Обратите внимание, что PHP анализирует строки в двойных кавычках для переменных и заменяет их значениями. Также обратите внимание, что вы должны использовать вышеупомянутую функцию
mysql_real_escape_string($var)
чтобы очистить ваши данные перед тем, как поместить их в MySQL. Вот ссылка, которую мехлер не смог опубликовать: php.net / mysql-real-escape-string )
Ура!
/ 0