我正在使用Drupal的db_fetch_array从我的db_query中获取行。但是,返回的每一行都等于NULL。将查询键入PHP myadmin有效,所以我不知道最近会发生什么。 db_num_rows也返回行数。这是代码:
if(count($rebuild_ids))
{
$ids=implode(",",$rebuild_ids);
$type_stmt = "SELECT * from {" . ItemType::$type_table_name . "} where id IN ($ids)";
$new_items=db_query($type_stmt);
if(!$new_items || db_num_rows($new_items) == 0)
{
return;
}
while($row = db_fetch_array($new_items));
{
if ($row!=NULL)
{
echo "I work!"
$game_items[] = $row['id'];
ItemInstance::$nid_to_item_type_code[$row['nid']] = $row['id'];
}
}
}
然而,它永远不会进入第三个if语句(即永远不会回声“我工作!”)任何想法?
答案 0 :(得分:1)
友情提示:Drupal具有编码标准http://drupal.org/coding-standards - 它有助于保留它们。这样的错误会更加明显......
同样在查询中添加变量是一个巨大的禁忌http://drupal.org/writing-secure-code
答案 1 :(得分:0)
$row
不是NULL
,否则它甚至不会达到第三个if
声明。
无需检查$row
是否包含信息,while
循环已经处理了这一点,但如果您想要检查,请使用empty($row)
或{{{{{ 1}};不要将数组与count($row) > 0
进行比较。
虽然......完全没有必要进行检查。
答案 2 :(得分:0)