即使查询失败,节点插入也会继续调用nodeapi

时间:2011-02-21 07:53:36

标签: php mysql drupal drupal-6 drupal-modules

我有一个自定义的nodapi函数,用于在插入一种内容类型时执行其他操作。但是,我发生了以下错误“在第3538行的test1 \ includes \ common.inc中发出警告”。我已将这种情况多次追踪到编码问题,但我不知道如何解决这个问题。

然而,即使查询失败,我还没有得到什么,nodeapi仍然被调用,我得到一个空白的nid。这也会导致其他插入失败,因为nid和vid为0或null。

我知道导致的问题是编码,但是我不明白为什么如果节点插入(我相信)失败并且没有生成nid或vid,Drupal仍会运行nodeapi。

任何帮助都将不胜感激。

格雷格。

1 个答案:

答案 0 :(得分:0)

看看node_save。 Drupal运行查询但不检查查询的结果。因此hook_nodeapi无论节点实际上是否保存在数据库中。

Drupal可以检查查询的结果,但这样做会带来很大的开销,这个问题只能由不正确的数据库设置引起。 Drupal需要适当的数据库设置,就像需要Web服务器和PHP一样。检查这些系统是否正常运行不应该是Drupal的工作。