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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Синтаксическая ошибка, которой походу нет...

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
teddy
Отправлено: 17 Мая, 2013 - 19:13:16
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




Получаю следующую синтаксическую ошибку:
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. ?>

(Добавление)
В сесии находится логин пользователя который залогинен, что бы узнать кто отправляет...
(Добавление)
ап Улыбка

(Отредактировано автором: 17 Мая, 2013 - 19:14:05)

 
 Top
OrmaJever Модератор
Отправлено: 17 Мая, 2013 - 19:47:22
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




в sql есть зарезирвироные слова типа "select" или "from", и поэтому все названия таблиц, полей, бд нужно брать в обраные кавычки
PHP:
скопировать код в буфер обмена
  1. $query = "INSERT INTO `messages` (`to`, `fromwho`, `message`) VALUES('$to','$fromwho','$message')";


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
teddy
Отправлено: 17 Мая, 2013 - 19:52:10
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




OrmaJever
Ничего не понимаю, зачем брать в кавычки все поля? Кстати, заработало! До этого я брал в кавычки только поле, которое содержит зарезервированное слово... а именно fromwho
teddy пишет:
fromwho из за присутствия слова from даже взял в обратные кавычки

или там походу TO тоже зарезервированное... но учту, спасибо ))
 
 Top
DelphinPRO
Отправлено: 17 Мая, 2013 - 19:57:55
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




teddy пишет:
или там походу TO тоже зарезервированное

вот чтобы не впоминать все зарезервированные слова и рекомендуется
OrmaJever пишет:
все названия таблиц, полей, бд нужно брать в обраные кавычки


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
teddy
Отправлено: 17 Мая, 2013 - 20:00:22
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




DelphinPRO пишет:
вот чтобы не впоминать все зарезервированные слова и рекомендуется

Как вариант, спасибо ) видел как то список, но не все запомнил ) Очередную шишку набил и тем самым получил пусть небольшой но опыт Подмигивание
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB