Этот точный код работал раньше на моей старой машине, но я получаю эту ошибку, отброшенную на меня (на Mac OSX 10.7).Ошибка синтаксиса MySQL для INSERT
Код С:
printf("%s\n",query);
if (mysql_query(conn,query)){
fprintf(stderr, "%s\n", mysql_error(conn));
}
Выход:
INSERT INTO comment (unum,cat_subject,cat_major,cat_minor,unmod)
VALUES (1,1,1,0,'The cat was lazy.')
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 ','The cat was lazy.')' at line 1
Оригинальные printf
заявления создает две строки текста, но я завернул их для удобства чтения.
Все это выглядит хорошо! Следующие работы в PHP для одной и той же таблицы (с правильными bindParam
заявления):
$STH=$DBH->prepare("INSERT INTO comment (unum,cat_subject,cat_major,cat_minor,unmod) VALUES (:u,:s,:ma,:mi,:t)");
Что случилось?
(BTW: Я пробовал с "
вместо '
, но это не имело никакого значения.)
Возможно, новая версия требует ';' в конце запроса? (маловероятно, но кто знает). Или, может быть, ваше имя таблицы является ключевым словом и должно быть изменено на '\' comment \ ''? –
Таблица отлично работает при вызове PHP/AJAX, поэтому его имя должно быть в порядке. И это отлично работает в PHP, поэтому я не думаю, что ему нужна точка с запятой: '$ STH = $ DBH-> prepare (" INSERT INTO comment (unum, cat_subject, cat_major, cat_minor, unmod) VALUES (: u,: s ,: ма,: ми,: т) ");'. :) – Nick
Есть ли непечатный символ в 'query' после' 0'? – eggyal