【问题标题】:Why does this query work inside a block but not inside custom Panel content?为什么此查询在块内有效,但在自定义面板内容内无效?
【发布时间】:2010-10-30 21:28:40
【问题描述】:

为什么以下查询在 Drupal 块中有效,但在作为面板页面内窗格中“自定义内容”的一部分时无效?它给出了一个错误,说检查“AND node.type in ....”附近的查询语法。此外,如果我将它放在一个块中,然后在面板页面中显示该块,它就可以正常工作。因此,虽然我已经完成了这项工作......我真的很想知道为什么它直接放在面板内容中时不起作用。

<?php
global $user;
if($user->uid) {
$result = db_query("Select COUNT(node.nid) from {node}
   LEFT JOIN {flag_content} flag_content_node 
       ON node.nid = flag_content_node.content_id AND 
       flag_content_node.fid = 7 
       where node.uid = %d AND node.type in ('node_type') AND
       (flag_content_node.uid IS NULL)", $user->uid);

$item_count = db_result($result);

print $item_count;
}?>

【问题讨论】:

    标签: mysql drupal-6 drupal-panels


    【解决方案1】:

    您的查询参数可能有问题,因为它在那里出错。也许如果$user-&gt;uid 为空?然后它会在查询中插入''而不是“%d”吗?这看起来很奇怪。

    这也意味着你没有登录。

    不,这不可能,因为您首先检查$user-&gt;uid 是否为真。

    【讨论】:

    • 我不认为这是论点...我是从全局 $user 那里得到的,所以它应该没关系吧?此外,还有更多类似的问题可以在drupal.stackexchange.com 上提供帮助
    • 不过,生成的 SQL 还是有问题。您应该打印(或记录) SQL 和参数值,因为这是唯一的线索。
    • 顺便说一句,你说global $user?因为如果你不这样做,根据最初加载的文件,变量的范围可能会改变:你可能会看到也可能不会看到全局变量。
    猜你喜欢
    • 1970-01-01
    • 2014-05-03
    • 1970-01-01
    • 2021-12-15
    • 1970-01-01
    • 2014-07-22
    • 2018-03-29
    • 1970-01-01
    • 2015-07-15
    相关资源
    最近更新 更多