私はSELECT文がLIMIT句なしで返される行数を得るために、Mysql SELECT文でSQL_CALC_FOUND_ROWS
を使用します。PHPでSQL_CALC_FOUND_ROWS/FOUND_ROWS()が機能しません
$sql = new mysqli('localhost', 'root', '');
$sql->select_db('mysql');
$s1 = $sql->query('select SQL_CALC_FOUND_ROWS * from db limit 0, 3');
$s2 = $sql->query('select FOUND_ROWS()');
if($row = $s2->fetch_row()) printf('%d/%d', $s1->num_rows, $row[0]);
私のWinXPデベロッパーステーションでは、3週間ごとに3週間返されます。私の駅から別のMySQLサーバを使用すると3/0も返されます。 別のPCでは、同じコードが正常に実行され、正しい数(たとえば、mysql.dbテーブルに17個のレコードがある場合は3/17)が返されます。すべてのXP PCには同じPHP/Mysqlバージョンがあり、過去には自分のPC上で正常に動作しました 同じSQLクエリでMysql Query Browserを使用すると、正しい番号が得られます。
誰でも私に解決策を教えてもらえますか?
申し訳ありませんが、私の以前のリクエストは非常に不明でした。
にしている場合は、あなたのPHPコードを含めることができます
をしたいですか?クエリに使用されているものと同じデータベース接続リソースを使用してカウントを求めているのは間違いありませんか? –
あなたの質問には、生成されたエラーと使用しているコードがありません。 – TravisO
@ PaulDixonありがとうポール!私たちの.netコードでは、私たちはあなたのコメントを読むとすぐに新しい接続を作成しています。私はそれが私の問題でなければならないことを知っていました。 –