Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: 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
 
 автор: сотка   (28.03.2012 в 21:09)   письмо автору
 
 

Всем привет! проверил скрипт на локальном хосте(все работает ! Версия 5.1.40-community),залил на хост и стал ругать на запросы в условиях WHERE! Версия на хосте 5.0.51a-24+lenny2+spu1-log! запросы вида

$query = "SELECT COUNT(*) FROM $tbl_comment
                             WHERE id_position = '$_GET[id_position]' ";

В чем причина?



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 'WHERE id_position = '5'' at line 2
SELECT COUNT(*) FROM
WHERE id_position = '5'

извините не в том форуме отписался

  Ответить  
 
 автор: Sfinks   (28.03.2012 в 22:18)   письмо автору
 
   для: сотка   (28.03.2012 в 21:09)
 

какие-то строгие проверки включены в настройках, ну и не принимает ЦЕЛОЕ в кавычках. И правильно делает. Все должно быть по назначению. Кавычки '5' уберите.

  Ответить  
 
 автор: сотка   (28.03.2012 в 22:46)   письмо автору
 
   для: Sfinks   (28.03.2012 в 22:18)
 

не помогает(

  Ответить  
 
 автор: Sfinks   (28.03.2012 в 22:56)   письмо автору
 
   для: сотка   (28.03.2012 в 22:46)
 

Стоп!
А FROM чего?
SELECT COUNT(*) FROM 
 WHERE id_position = '5'
- где имя таблицы???

$tbl_comment - это реально переменная с именем таблицы или опечатка. Если переменная, то проверяйте ее содержимое.

  Ответить  
 
 автор: сотка   (28.03.2012 в 23:06)   письмо автору
 
   для: Sfinks   (28.03.2012 в 22:56)
 

config.php


$tbl_comment            = 'system_comment';


с этим нормик все !

$query = "SELECT COUNT(*) FROM $tbl_comment
                             WHERE id_position =". $_GET[id_position];
        $cnt = mysql_query($query);
        if(!$cnt)
        {
          throw new ExceptionMySQL(mysql_error(), 
                                   $query,
                                  "Ошибка извлечения к-ва
                                   комментариев");
        }



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 'WHERE id_position =5' at line 2
SELECT COUNT(*) FROM
WHERE id_position =5

  Ответить  
 
 автор: task   (28.03.2012 в 23:20)   письмо автору
 
   для: сотка   (28.03.2012 в 23:06)
 

Взлома не боимся?

  Ответить  
 
 автор: сотка   (28.03.2012 в 23:23)   письмо автору
 
   для: task   (28.03.2012 в 23:20)
 

вы имеете ввиду нет фильтрации?

id_position =". $_GET[id_position]

  Ответить  
 
 автор: task   (28.03.2012 в 23:26)   письмо автору
 
   для: сотка   (28.03.2012 в 23:23)
 

А вы считаете, что в таком виде вставлять данныне в запрос не опасно? И вообще, правильно это так - $_GET['id_position'], а не надеяться, что вашу небрежность РНР исправит всегда.

  Ответить  
 
 автор: сотка   (28.03.2012 в 23:28)   письмо автору
 
   для: task   (28.03.2012 в 23:26)
 

$_GET['id_position'] = intval($_GET['id_position']);


не работает и по вашему тоже(((

  Ответить  
 
 автор: task   (28.03.2012 в 23:32)   письмо автору
 
   для: сотка   (28.03.2012 в 23:28)
 

А я и не говорил, что в этом причина. Это просто небрежность, которая может когда либо привести к неожиданному результату, так что отвыкайте.
А причина видна по строке вызова вашего (ниже).

  Ответить  
 
 автор: сотка   (28.03.2012 в 23:34)   письмо автору
 
   для: task   (28.03.2012 в 23:32)
 

не определена переменная? Ладно пойду просмотрю скрипт еще раз! Всем спасибо

  Ответить  
 
 автор: task   (28.03.2012 в 23:36)   письмо автору
 
   для: сотка   (28.03.2012 в 23:34)
 

SELECT COUNT(*) FROM WHERE id_position = 5 - отсутствует имя таблицы, а почему, смотрите, либо подключение переменных не в том месте, либо... Откуда же мне знать как у вас все.

  Ответить  
 
 автор: сотка   (28.03.2012 в 23:40)   письмо автору
 
   для: task   (28.03.2012 в 23:36)
 

Спасибо большое,понял в какую сторону капать! Кстати по поводу взлома
$_GET['id_position'] = intval($_GET['id_position']);


достаточно?)))

  Ответить  
 
 автор: task   (28.03.2012 в 23:46)   письмо автору
 
   для: сотка   (28.03.2012 в 23:40)
 

да

  Ответить  
 
 автор: Sfinks   (28.03.2012 в 23:20)   письмо автору
 
   для: сотка   (28.03.2012 в 23:06)
 

Вы перед
$cnt = mysql_query($query);
вставьте
exit( $query );
и проверьте. Если запрос такой как написан выше, то ищите где потерялась переменная $tbl_comment.

  Ответить  
 
 автор: сотка   (28.03.2012 в 23:25)   письмо автору
 
   для: Sfinks   (28.03.2012 в 23:20)
 

SELECT COUNT(*) FROM WHERE id_position = 5

выводит и все

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования