0

这个函数应该false在失败时返回,但在我的例子中它没有返回任何东西,而是崩溃了。

echo "This gets printed" ;
$x =  $db->query( "SELECT * FROM something WHERE id=123 AND name='abc'" );
echo "This does not get printed";

现在,如果我回显实际的查询字符串,从命令行将其复制粘贴到 mysql 中,这是一个有效的查询。我唯一能想到的是,它可能与它是一个递归查询有关,$db->query连续调用两次可能是无效的。这或多或少是我的流程:

function recursiveQuery ( $result )
{
   $temp = array ();

   while ( $row = $result->fetch_assoc() )
   {
      $temp [ 'name' ] = $row [ 'name' ];
      $id = $row [ 'id' ];
      $temp [ 'sub' ] = recursiveQuery ( $db->query( "SELECT * FROM something WHERE parent_id=$id" ));
   }

   return $temp;
}

recursiveQuery ( $db->query( "SELECT * FROM something WHERE parent_id=0" ));

这无效吗?我应该如何重组它?

4

1 回答 1

0

哇,我真是个傻瓜。事实证明,问题在于范围,即$db无法从递归查询内部访问

于 2012-11-17T00:00:01.703 回答