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 :: Версия для печати :: Синтаксическая ошибка, которой походу нет...
Форумы портала PHP.SU » » Вопросы новичков » Синтаксическая ошибка, которой походу нет...

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

1. teddy - 17 Мая, 2013 - 19:13:16 - перейти к сообщению
Получаю следующую синтаксическую ошибку:
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 'to,fromwho,message)VALUES('Mike Doe','TestUser','Hello, i`m TestUser!!!')' at line 1
Как заметно из ошибки, значения успешно подставляются в запрос и по идее должны укладываться в БД. Но мне почему то выдает ошибку. Название полей абсолютно совпадают с теми что в БД, последовательность и т.д... fromwho из за присутствия слова from даже взял в обратные кавычки, но не помогло... думал мб там косяк. Подскажите плз где я напортачил? Растерялся


PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. include "connect.php";
  3.  
  4. if(isset($_GET['id'])){
  5. //получаем логин пользователя для того, что бы было наглядно кому отправляем сообщение а главное для того, что бы записать его в БД
  6. $id = $_GET['id'];
  7. $sql = mysql_query("SELECT login FROM users WHERE id='$id'");
  8. $row = mysql_fetch_assoc($sql);
  9.  
  10. $name = array();
  11. $too = $row['login'];
  12. $name[] = $too;
  13. foreach($name as $to)
  14. if(isset($_POST['submit'])){
  15. //Если была нажата кнопка отправить, принимаем соответствующие данные и записываем их в переменные для отправки в БД через запрос.
  16.  
  17. $fromwho = $_SESSION['success'];
  18. $message = $_POST['message'];
  19. $query = "INSERT INTO messages(to,fromwho,message)VALUES('$to','$fromwho','$message')";
  20.  
  21. mysql_query($query) or die(mysql_error());
  22. echo "Ваше сообщение успешно отправлено!";
  23. }
  24.  
  25.  
  26. ?>
  27. <label>Отправить сообщение пользователю <?=$row['login']?></label>
  28. <form action="<?PHP $_SERVER['PHP_SELF']?>" method="post">
  29. <textarea cols="30" rows="10" name="message"></textarea><br>
  30. <input type="submit" name="submit" value="Отправить">
  31. <?
  32. }
  33. ?>

(Добавление)
В сесии находится логин пользователя который залогинен, что бы узнать кто отправляет...
(Добавление)
ап Улыбка
2. OrmaJever - 17 Мая, 2013 - 19:47:22 - перейти к сообщению
в sql есть зарезирвироные слова типа "select" или "from", и поэтому все названия таблиц, полей, бд нужно брать в обраные кавычки
PHP:
скопировать код в буфер обмена
  1. $query = "INSERT INTO `messages` (`to`, `fromwho`, `message`) VALUES('$to','$fromwho','$message')";
3. teddy - 17 Мая, 2013 - 19:52:10 - перейти к сообщению
OrmaJever
Ничего не понимаю, зачем брать в кавычки все поля? Кстати, заработало! До этого я брал в кавычки только поле, которое содержит зарезервированное слово... а именно fromwho
teddy пишет:
fromwho из за присутствия слова from даже взял в обратные кавычки

или там походу TO тоже зарезервированное... но учту, спасибо ))
4. DelphinPRO - 17 Мая, 2013 - 19:57:55 - перейти к сообщению
teddy пишет:
или там походу TO тоже зарезервированное

вот чтобы не впоминать все зарезервированные слова и рекомендуется
OrmaJever пишет:
все названия таблиц, полей, бд нужно брать в обраные кавычки
5. teddy - 17 Мая, 2013 - 20:00:22 - перейти к сообщению
DelphinPRO пишет:
вот чтобы не впоминать все зарезервированные слова и рекомендуется

Как вариант, спасибо ) видел как то список, но не все запомнил ) Очередную шишку набил и тем самым получил пусть небольшой но опыт Подмигивание

 

Powered by ExBB FM 1.0 RC1