Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Программирование на PHP

  Все выпуски  

RusFAQ.ru: Программирование на PHP


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / PHP

Выпуск № 772
от 22.09.2007, 04:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 441, Экспертов: 44
В номере:Вопросов: 1, Ответов: 3


Вопрос № 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).

Приложение:

Отправлен: 17.09.2007, 03:50
Вопрос задал: Сергей Николаевич Жмур (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: 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


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.59 от 18.09.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное