这个函数应该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" ));
这无效吗?我应该如何重组它?