Вопрос № 102278: Здравствуйте, уважаемые эксперты.
Почему-то не получается добавить в таблицу запись. Данные берутся из переменных:
mysql_query('INSERT INTO tbl SET fld1='$fld1', fld2='$fld2'');
При таком синтаксисе выдается ошибка:
Parse error: parse...
Вопрос № 102.278
Здравствуйте, уважаемые эксперты.
Почему-то не получается добавить в таблицу запись. Данные берутся из переменных:
mysql_query('INSERT INTO tbl SET fld1='$fld1', fld2='$fld2'');
При таком синтаксисе выдается ошибка:
Parse error: parse error, unexpected T_VARIABLE in c:homesite.ruwwwfilename.php on line 29
(строка 29 - та, что я привел).
Пробовал убирать апострофы с переменных, ошибка не выдается, но запись в таблицу не происходит - при выполнении "проверочного" кода (в приложении) выдается
Array
(
)
MySQL начал изучать недавно, по книге Котерова/Костарева "php5", стоит Денвер (Apache/1.3.33, PHP/4.4.4).
Отвечает: Azrr
Здравствуйте, Сергей Николаевич Жмур!
В запросе вы используете ковычки одного типа, что недопустимо.
Варианты действий:
1) Экранировать ковычки(Пример 1)
2) Использовать разные типы ковычек
я бы использовал третий вариант...
Приложение:
Ответ отправил: Azrr (статус: 4-ый класс)
Ответ отправлен: 17.09.2007, 03:58 Оценка за ответ: 4 Комментарий оценки: Спасибо за варианты :) Первый вариант у меня, однако, не сработал, как надо - в первом поле оказался ноль, во втором - $fld2 вместо значения этой переменной (поэтому не 5).
Отвечает: K0rvin
Здравствуйте, Сергей Николаевич Жмур!
Проблема в том, что Вы используете вложенные апострофы в своем запросе. Просто замените внешнюю пару на двойные кавычки:
mysql_query("INSERT INTO tbl SET fld1='$fld1', fld2='$fld2'");
PS: дело вкуса, но я рекомендовал бы для INSERT Запросов использовать стандартный синтаксис:
INSERT INTO `tbl` (`fld1`, `fld2`) VALUES ('$fld1', '$fld2')
или
INSERT INTO `tbl` VALUES ('$fld1', '$fld2')
а, приведенный Вами синтаксис оставить для UPDATE запросов. Визуально будет нагляднее. Это только ИМХО, разумеется.
Ответ отправил: K0rvin (статус: 1-ый класс)
Ответ отправлен: 17.09.2007, 19:30
Отвечает: BerdArt
Здравствуйте, Сергей Николаевич Жмур!
Во-первых, попробуйте поставить обратные кавычки `вокруг названия таблицы и полей, переменные заключить в обычные одинарные кавычки '. Во-вторых, сам SQL запрос заключите в двойные кавычки ". По идеи теперь все должно работать.
Удачи!
Ответ отправил: BerdArt (статус: 3-ий класс)
Ответ отправлен: 18.09.2007, 16:02