WordPressでデータベースを扱う「wpdb」を使って、返された行数を取得する方法

WordPressでデータベースを使って何かをしたい場合は「wpdb」を使うと便利なことは以前勉強したんですが、SELECT文などのSQLクエリを実行して、返された行数を簡単に取得する方法があります。クラス変数「$num_rows」を使う方法です。

クラス変数「$num_rows」を使って行数を取得

$sql = $wpdb->get_results(SQLクエリ); //クエリを実行

$num = $wpdb->num_rows; //最後に実行したクエリ「$sql」の行数を取得

上記の感じで取得できます。MySQLのCOUNT関数を使っても取得できますが、せっかくWordPressには便利なクラス変数が用意されているので、私はよく使っています。クラス変数は他にもあるので、詳細はCodexをご参考ください。

「$num_rows」を使うときの注意点

Codexにも書いてありますが「最後に実行したクエリに対して」結果を取得します。

最後に実行したクエリの行数を取得

$sql_A = $wpdb->get_results(SQLクエリA);
$sql_B = $wpdb->get_results(SQLクエリB);

$num = $wpdb->num_rows; //最後に実行したクエリ「$sql_B」の行数を取得

というわけで、上の例では最後に実行した「$sql_B」に対して行数を取得できます。これは、覚えておくといいですね。

著者:bouya Imamura