|
|
27.11.2010, 15:44
|
|
Сухроб Хусамов
Веб-студия ООО «Альтернатива»
Зарегистрирован: 2008-04-28
Сообщений: 28
|
Здравствуйте!
Может кто знает в чем может быть проблема.
Почему не работает запрос к базе данных, часть которого хранится в компоненте?
Если я так запрос делаю через ваш объект $db, то запрос отрабатывается нормально:
Код:$mgGoodies = $db->get_results("
select Message_ID, Price, Currency, Description, Name, Subdivision_ID
from Message123
where Created > CURDATE() - 10
");
А если я делаю так (where берется из компонента):
Код:$mgGoodies = $db->get_results("
select Message_ID, Price, Currency, Description, Name, Subdivision_ID
from Message123
where $f_WhereCondition
");
то возникает ошибка:
Код:Warning: 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 '; CURDATE() - 10'
at line 3 in W:\home\mebel-gem.ro\www\netcat\system\nc_db.class.php on line 112
Как это можно исправить?
Сухроб Хусамов
|
|
|
27.11.2010, 16:08
|
|
Владимир Ветошкин
Зарегистрирован: 2010-10-17
Сообщений: 12
|
Какую строку содержит $f_WhereCondition?
|
|
|
27.11.2010, 16:24
|
|
Сухроб Хусамов
Веб-студия ООО «Альтернатива»
Зарегистрирован: 2008-04-28
Сообщений: 28
|
$f_WhereCondition = "Created > CURDATE() - 10"
Сухроб Хусамов
|
|
|
29.11.2010, 23:02
|
|
Владимир Ветошкин
Зарегистрирован: 2010-10-17
Сообщений: 12
|
Вместо $f_WhereCondition:
htmlspecialchars_decode($f_WhereCondition)
Ну или создай, к примеру, переменную:
$tmp = htmlspecialchars_decode($f_WhereCondition);
А затем уже:
$mgGoodies = $db->get_results("
select Message_ID, Price, Currency, Description, Name, Subdivision_ID
from Message123
where $tmp
");
|
|
|
30.11.2010, 11:43
|
|
Мирон
Зарегистрирован: 2010-08-03
Сообщений: 5
|
Да просто нужно в кавычки обернуть. Строка же
|
|
|
01.12.2010, 00:43
|
|
DiGGy
DiGGy
Зарегистрирован: 2005-04-04
Сообщений: 1546
|
Очень небезопасный вариант формирования запроса, большая вероятность sql-инъекции из вне.
Temet nosce...
|
|
|
01.12.2010, 23:06
|
|
Сухроб Хусамов
Веб-студия ООО «Альтернатива»
Зарегистрирован: 2008-04-28
Сообщений: 28
|
Спасибо! Буду пробовать.
Цитата:Очень небезопасный вариант формирования запроса, большая вероятность sql-инъекции из вне.
В Неткате есть аналогичный вариант, это сортировка элементов компонента. В поле можно забить часть опции ORDER BY.
Так что плюс/минус такой вариант ничего не изменит уже.
Сухроб Хусамов
|
|
|
01.12.2010, 23:42
|
|
Сухроб Хусамов
Веб-студия ООО «Альтернатива»
Зарегистрирован: 2008-04-28
Сообщений: 28
|
Цитата:Вместо $f_WhereCondition:
htmlspecialchars_decode($f_WhereCondition)
Спасибо! Это сработало.
Не ясно почему из базы данных закодированное идет...
Сухроб Хусамов
|