いくつかの内部クエリから構築されたかなり複雑なクエリを実行しています。クエリの先頭に SQL_CALC_FOUND_ROWS が含まれていました。残念ながら、取得できるのは行数だけです(結果自体を取得できませんでした)。
SQL_CALC_FOUND_ROWS を取り除き、2 つの異なるクエリを実行することにしました。1 つは行をカウントし、2 番目は行をフェッチします。この場合、結果を取得できますが、COUNT(*) クエリが奇妙に動作します。これが私がすることです:
- COUNT(*) クエリを実行
- mysql_query() が FALSE を返す
- COUNT(*) クエリが空白文字列を返した直後に実行される mysql_error()
コードは次のとおりです。
$sqlCount = "SELECT COUNT(*) AS c FROM ... WHERE ...";
$resultCount = mysql_query($sqlCount);
echo "RESULT COUNT: " . ($resultCount === FALSE) . "<br />";//it returns 1(true)
echo mysql_error(); //it returns nothing (blank string)
さらに mysql_errno() は 0 を返します
このような奇妙な状況について、合理的な説明を見つけることができますか?