1

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

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

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

4

1 回答 1

0

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

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

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

现在您知道出了什么问题,因此请在您的主题中找到它。

于 2013-09-19T13:42:58.460 回答