説明
$wpdb->get_col() は、SELECT文を実行し、1列分の値を配列で取得するメソッドです。
基本構文
$wpdb->get_col( string $query = null, int $x = 0 ): array
引数
$query:SQL文$x:何列目か
戻り値
値の配列。
使い方(サンプル)
global $wpdb;
$ids = $wpdb->get_col( "SELECT ID FROM {$wpdb->posts} LIMIT 10" );
注意点
- IDの一覧を取得するときに便利です。
実務での使いどころ
- 1列の値を、配列として、取得するとき(IDの一覧など)。
よくあるミスと対処
- 変数を、直接SQLに入れている。
$wpdb->prepare()を使う。 - 結果が、1件もないときは、空の配列。
- 複数の列が欲しいのに、使っている。1列だけが、取得される。
NG例
$ids = $wpdb->get_col( "SELECT ID FROM {$wpdb->posts} WHERE post_author = $author_id" ); // 変数を直接入れている
OK例
$ids = $wpdb->get_col(
$wpdb->prepare( "SELECT ID FROM {$wpdb->posts} WHERE post_author = %d AND post_status = 'publish'", $author_id )
);
使い分け早見表
| メソッド | 取得するもの |
|---|---|
$wpdb->get_col() |
1列(値の配列) |
$wpdb->get_results() |
複数行 |
$wpdb->get_var() |
1つの値 |
関連項目
$wpdb->get_results()、$wpdb->get_var()
公式リファレンス:wpdb::get_col() | Class method | WordPress Developer Resources

コメント