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 :: Ошибка запроса MySQL , где данные русские буквы и знаки

 PHP.SU

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


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

> Описание: Ошибка запроса , где данные русские буквы и знаки
LEXXntu
Отправлено: 10 Ноября, 2012 - 00:03:22
Post Id



Новичок


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


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




селект по русскому тексту да ещё и с двойными кавычками

$work_name = 'Джинсы "Бантик"';

$result = mysql_query("SELECT SUM(count) FROM web WHERE name = $work_name" , $connection);

Неверный запрос: 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 '�жинсы "Бантик"' at line 1
 
 Top
Panoptik
Отправлено: 10 Ноября, 2012 - 00:53:25
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


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




во-первых саму переменную в запросе нужно брать в кавычки, а во-вторых нужно экранировать кавычки в переменных
воспользуйтесь функциями addslashes, mysql_real_escape_string etc


-----
Just do it
 
 Top
Wol_fi
Отправлено: 10 Ноября, 2012 - 07:13:45
Post Id


Новичок


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


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




LEXXntu пишет:
селект по русскому тексту да ещё и с двойными кавычками

$work_name = 'Джинсы "Бантик"';

$result = mysql_query("SELECT SUM(count) FROM web WHERE name = $work_name" , $connection);

Неверный запрос: 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 '�жинсы "Бантик"' at line 1

попробуйте примерно так:
PHP:
скопировать код в буфер обмена
  1.  
  2. $work_name = 'Джинсы "Бантик"';
  3. $escaped_work_name = mysql_real_escape_string($work_name,$connection);
  4. $result = mysql_query("SELECT SUM(`web`.`count`) FROM `web` WHERE `web`.`name`='{$escaped_work_name}'",$connection);
  5.  
 
 Top
LEXXntu
Отправлено: 10 Ноября, 2012 - 07:59:00
Post Id



Новичок


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


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




Wol_fi пишет:
LEXXntu пишет:
селект по русскому тексту да ещё и с двойными кавычками

$work_name = 'Джинсы "Бантик"';

$result = mysql_query("SELECT SUM(count) FROM web WHERE name = $work_name" , $connection);

Неверный запрос: 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 '�жинсы "Бантик"' at line 1

попробуйте примерно так:
PHP:
скопировать код в буфер обмена
  1.  
  2. $work_name = 'Джинсы "Бантик"';
  3. $escaped_work_name = mysql_real_escape_string($work_name,$connection);
  4. $result = mysql_query("SELECT SUM(`web`.`count`) FROM `web` WHERE `web`.`name`='{$escaped_work_name}'",$connection);
  5.  


Большое спасибо за ответ!
Ошибка пропала но выборка верно не идет

Вот что я выяснил:
Если в PHP MyAdmin написать запрос то


CODE (SQL):
скопировать код в буфер обмена
  1. SET @work_name = 'Джинсы "Бантик"';
  2. SELECT SUM(count) FROM web WHERE name= @work_name;

Ответ 3.00
Всё верно!
То есть работа запроса в принципе возможно

Но в коде сайта, если я пишу так:

PHP:
скопировать код в буфер обмена
  1. $work_name = 'Джинсы "Бантик"';
  2. $escaped_work_name = mysql_real_escape_string($work_name,$connection);
  3. $query = mysql_query("SELECT SUM(`web`.`count`) FROM `web` WHERE `web`.`name`='{$escaped_work_name}'") or die( mysql_error() ) ;               
  4. $result = mysql_fetch_array($query);
  5. echo "Сумма:  $result[0]";
  6.  


Я не получаю результата

Я пошёл дальше в эксперименте и изменил имена продукта на 'test' английскими буквами - и всё заработало!
Но когда поменял на 'тест' русскими буквами - результата нет
Подскажите пожалуйста куда копать!
В чём тут дело ?

(Отредактировано автором: 10 Ноября, 2012 - 22:35:01)

 
 Top
LEXXntu
Отправлено: 11 Ноября, 2012 - 13:25:52
Post Id



Новичок


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


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




$collation = mysql_query("SET NAMES cp1251" , $connection) or die( mysql_error() ) ;

Вопрос закрыт, работает при

$query = mysql_query("SELECT SUM(count) FROM web WHERE name = '$work_name'" , $connection) or die( mysql_error() ) ;
 
 Top
LEXXntu
Отправлено: 12 Ноября, 2012 - 08:31:54
Post Id



Новичок


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


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




попробуйте примерно так:
PHP:
скопировать код в буфер обмена
  1.  
  2. $work_name = 'Джинсы "Бантик"';
  3. $escaped_work_name = mysql_real_escape_string($work_name,$connection);
  4. $result = mysql_query("SELECT SUM(`web`.`count`) FROM `web` WHERE `web`.`name`='{$escaped_work_name}'",$connection);
  5.  
[/quote]

Я поспешил с выводами, работает только у меня в Dreamweaver, на реальном же сайте OpenCart работает с русскими и английскими буквами но не работает с кавычками!
 
 Top
caballero
Отправлено: 12 Ноября, 2012 - 10:02:38
Post Id


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


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


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




ты что так и будешь вбивать переменные в файл?
в любом случае должна совпадать кодировка файла и БД
поэтому когда пишешь в другом редакторе убедись том выставлена нужная кодировка
а лучше переведи все в UTF8


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 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