この関数は失敗すると戻るはずです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
2回続けて呼び出すことは無効である可能性があるということです。これが多かれ少なかれ私の流れです:
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" ));
これは無効ですか?どのように再編成する必要がありますか?