Drupal db_query错误需要帮助

时间:2010-04-16 11:33:36

标签: mysql drupal-6

我正在使用drupal 6.15并在drupal中完成我的第一个项目。使用db_query

运行以下查询时遇到问题

我在列'tag'中有drupal,delhi关键字,带有表名标记。

db_query(SELECT * FROM {tagging} WHERE标签LIKE'%drup%')不会检索正确的输出。

它显示为null但查询修改如此,

db_query(SELECT * FROM {tagging} WHERE标签LIKE'duup%')检索“drupal”作为输出

最后我使用了php核心mysql_query

mysql_query(SELECT * FROM tagging WHERE标签LIKE'%drup%')它检索确切的正确输出“drupal”。

任何人都有解决方案,

Thanxs, 戈壁

1 个答案:

答案 0 :(得分:2)

出于安全原因,最好在db_query中使用修饰符。

可以使用以下修饰符:(请参阅http://api.drupal.org/api/function/db_query

%s表示字符串
整数的%d 浮点数%f 二进制类型的%b %% for%

按如下方式编写查询:

$sql = "SELECT * FROM {tagging} WHERE tag LIKE '%%%s%%'";  
db_query($sql, "drup");