陷入错误:传递给db_query()的参数2必须是一个数组

时间:2013-09-18 11:50:43

标签: drupal drupal-7

我从6.x更新到7.x.我更新了核心,模块,现在正在更新主题。为此,我下载了ZEN作为基本主题,并开始开发一个新的子主题(从以前版本的主题)。选择这个新的“子主题”后,我得到了这个错误:

可恢复的致命错误:传递给db_query()的参数2必须是一个数组,给定null,在~modules / php / php.module(80)中调用:eval()'代码在第11行并在db_query中定义( )(~inslude / database / database.inc的第2342行)。

我试图切换到花环 - 在花环上一切正常。 我试图切换到bartik - 并得到同样的错误。 所以问题不在于主题(我几次检查了我的新子主题)。 我检查了所有块(找到带有错误代码的PHP),纠正了一些问题,但仍然遇到了这个错误。 我还尝试关闭bartik中的几乎所有块(除了'导航'和'主页面内容'),但仍然出现此错误。 我发现有问题。有什么方法可以如何检测问题所在地能够修复它? 现在我用php过滤器检查所有块,所有主题,所有内容。之后我清除缓存并仍然出现此错误。最令人惊奇的是,我对花环没有任何错误。 我该怎么做才能找出问题所在?

1 个答案:

答案 0 :(得分:0)

Drupal 6的db_query函数要求第一个参数是参数化查询,其余参数要以正确的顺序替换它们。

但是,Drupal 7支持PDO,而db_query函数的第二个参数应该是placeholder =>的数组。 value模式。

 db_query('SELECT * from somewhere where something = :that ', array(':that' => 'beer')); 

现在你知道出了什么问题,所以在你的主题中找到它。