Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Не работает запрос INSERT INTO
Форумы портала PHP.SU » » Вопросы новичков » Не работает запрос INSERT INTO

Страниц (1): [1]
 

1. surrealistic pillow - 10 Августа, 2014 - 16:54:42 - перейти к сообщению
Вот запрос:
PHP:
скопировать код в буфер обмена
  1. $putintodb = mysql_query("INSERT INTO af0ap_content (title, fulltext, state, catid, created_by, access) VALUES ('".$newArrHead[$j]."', '".$contents[$j]."', '1', '2', '131', '1')");

он не работает, то есть не заносит запись в базу.

Вывожу ошибку с помощью

Выводит следующее:
Цитата:
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 'fulltext, state, catid, created_by, access) VALUES ('По�' at line 1

версия MySQL 5.1.69
Какие еще есть варианты написания подобного запроса, которые могут удовлетворить эту версию MySQL?
2. likvidator - 10 Августа, 2014 - 18:01:15 - перейти к сообщению
surrealistic pillow пишет:
$putintodb = mysql_query("INSERT INTO `af0ap_content` (`title`, `fulltext`, `state`,`catid`, `created_by`, `access`) VALUES ('".$newArrHead[$j]."', '".$contents[$j]."', '1', '2', '131', '1')");

? Хотя, в передаваемых данных похоже проблема,что в переменных?

surrealistic pillow пишет:
$putin to db Радость
3. W1nnyPyx - 10 Августа, 2014 - 19:36:31 - перейти к сообщению
vardamp попробуйте посмотреть что к путину приходит Радость
4. surrealistic pillow - 10 Августа, 2014 - 21:13:29 - перейти к сообщению
likvidator в передаваемых переменных проблемы нет, там содержатся элементы массивов (заголовков статей $newArrHead и текста статей $contents) соответственно.

W1nnyPyx

выводит bool(false) для каждой итерации цикла
5. Sail - 11 Августа, 2014 - 09:21:14 - перейти к сообщению
surrealistic pillow пишет:
...'По�'...

Для начала попробуйте экранировать $newArrHead[$j] и другие переменные.
Например:

К тому-же действительно полезно будет "посмотреть что к путину приходит".
PHP:
скопировать код в буфер обмена
  1. $sQuery = "INSERT INTO...";
  2. echo $sQuery;
  3. $putintodb = mysql_query($sQuery);
6. surrealistic pillow - 11 Августа, 2014 - 09:45:15 - перейти к сообщению
Думал, что версия MySQL слишком древняя, и возможно в этом проблема, закинул сайт на локальный сервер (для этого специально установил Denwer).
но с версией 5.5.25 скрипт выводит ту же ошибку
Цитата:
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 'fulltext, state, catid, created_by, access) VALUES ( '????' at line 1

Меня тут посетила мысль, а может быть дело в кодировке?
Названия статей, которые формируют массив $newArrHead я вытаскиваю из другой базы, кодировка поля с названием utf8_general_ci, такая же, как и в поле title той базы, куда пытаюсь вставить.
А вот с текстом проблемка, тк текст я вытаскиваю из файлов с расширением .htm, с кодировкой windows-1251.
поле fulltext, куда надо вставить это безобразие, соответсвенно в utf8_general_ci.

Из этого следует такой вопрос, как мне перекодировать текст, находящийся в массиве $contents в utf-8?

пробовал так:
PHP:
скопировать код в буфер обмена
  1. iconv('windows-1251', 'utf-8', $contents[$j]);

не помогает
(Добавление)
Sail
PHP:
скопировать код в буфер обмена
  1. $putintodb = mysql_query("INSERT INTO af0ap_content ( title, fulltext, state, catid, created_by, access) VALUES ( '".mysql_real_escape_string($newArrHead[$j])."', '".mysql_real_escape_string($contents[$j])."', '1',   '2',   '131',       '1')" );
  2.  

выводит ошибку
Цитата:
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 'fulltext, state, catid, created_by, access) VALUES ( '????????????? \"?? ??' at line 1
7. Мелкий - 11 Августа, 2014 - 10:40:19 - перейти к сообщению
Люди, вы чем вообще занимаетесь? Ответ уже давным-давно был дан:
likvidator пишет:
surrealistic pillow пишет:
$putintodb = mysql_query("INSERT INTO `af0ap_content` (`title`, `fulltext`, `state`,`catid`, `created_by`, `access`) VALUES ('".$newArrHead[$j]."', '".$contents[$j]."', '1', '2', '131', '1')");

?


fulltext, наряду ещё с некоторым списком, является зарезервированным словом.
8. surrealistic pillow - 11 Августа, 2014 - 12:35:35 - перейти к сообщению
Мелкий ты прав. Все заработало после того как обернул кавычками `` поля в запросе
9. Vinyl - 11 Августа, 2014 - 13:46:27 - перейти к сообщению

W1nnyPyx пишет:
попробуйте посмотреть что к путину приходит Радость

Помираю со смеху!

 

Powered by ExBB FM 1.0 RC1