3

制限する前に、クエリによって返される行の総数を取得しようとしています。ここで見つかったアドバイスを使用しようとしていSQL_CALC_FOUND_ROWSますFOUND_ROWS()

彼らはこの例を挙げています:

SELECT SQL_CALC_FOUND_ROWS something FROM your_table WHERE whatever;
SELECT FOUND_ROWS( ) ;

私が理解できないのは、2 番目の値をFOUND_ROWS()PHP 変数に取り込む方法です。私は Wordpress 内で作業しているので、グローバルな $wpdb を使用して MySQL のやり取りを処理しています。ここに私がしようとしているものの簡略化されたバージョンがあります:

$rows = $wpdb->get_results( "SELECT SQL_CALC_FOUND_ROWS something FROM your_table WHERE whatever;" );
$count = $wpdb->get_results( "SELECT FOUND_ROWS();" );

最初のクエリは機能しますが、$count は常に空です。phpMyAdmin で両方を実行すると、クエリはエラーなしで実行されます。

私もこれを試しました:

$rows = $wpdb->get_results( "SELECT SQL_CALC_FOUND_ROWS something FROM your_table WHERE whatever;
SET @count = FOUND_ROWS();" );

...しかし、それは完全に失敗します。

私は何を間違っていますか?

4

3 に答える 3

5

これが Wordpress の場合、2 番目のステートメントを別の方法で実行できます。それ以外の場合は、数値ではなく配列を要求していました。

$count = $wpdb->get_var('SELECT FOUND_ROWS()');

また、wordpress のデータベース クラスは、フィルターによってクエリを変更できるようになっていることに注意してくださいデフォルトでは、クエリを実行して結果セットから取得する際にエラーが抑制されます。

特定のエラーが発生するかどうかを確認するには、スクリームを有効にする必要があります。

  • $wpdb->show_errors = trueWP_DEBUGが に設定されている場合、エラーが自動的に表示されtrueます。(参照)
于 2013-01-06T01:55:13.863 に答える