Ошибка Drupal db_query нужна помощь - PullRequest
0 голосов
/ 16 апреля 2010

Я использую Drupal 6.15 и делаю свой первый проект в Drupal. у меня возникла проблема при выполнении запроса ниже с db_query

у меня есть drupal, ключевые слова delhi в столбце 'tag' с пометкой имени таблицы.

db_query (SELECT * FROM {tagging} WHERE tag LIKE '% drup%') не будет получать правильный вывод.

показывает ноль, но запрос изменен следующим образом:

db_query (SELECT * FROM {tagging} WHERE tag, КАК 'drup%') извлекает "drupal" в качестве вывода

наконец-то я использовал php-ядро mysql_query

mysql_query (ВЫБРАТЬ * ОТ tagging ГДЕ ТЭГ НРАВИТСЯ '% drup%') он получает точный и правильный вывод "drupal".

есть решение,

Thanxs, Гоби

1 Ответ

2 голосов
/ 21 апреля 2010

По соображениям безопасности лучше всего использовать модификаторы в db_query.

Доступны следующие модификаторы: (см. http://api.drupal.org/api/function/db_query)

% s для строк
% d для целого числа
% f для плавающей запятой
% b для двоичного типа
%% для%

Напишите ваш запрос следующим образом:

$sql = "SELECT * FROM {tagging} WHERE tag LIKE '%%%s%%'";  
db_query($sql, "drup"); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...