説明
$wpdb->get_var() は、SELECT文を実行し、1つの値だけを取得するメソッドです。
基本構文
$wpdb->get_var( string $query = null, int $x = 0, int $y = 0 ): string|null
引数
$query:SQL文$x:何列目か$y:何行目か
戻り値
値の文字列。該当なしなら null。
使い方(サンプル)
global $wpdb;
$title = $wpdb->get_var(
$wpdb->prepare( "SELECT post_title FROM {$wpdb->posts} WHERE ID = %d", 123 )
);
注意点
COUNT(*)など、1つの値を取得するクエリに向いています。- 戻り値は文字列なので、数値として使うなら型変換が必要です。
実務での使いどころ
- 1つの値(件数、最大値、1つの列の値)だけを、取得するとき。
COUNT(*)の結果を、取得するとき。
よくあるミスと対処
- 変数を、直接SQLに入れている。
$wpdb->prepare()を使う。 - 値が、文字列で返る。数値として比べるときは、
(int)などで、変換する。 - 見つからないときは
null。0や空文字と、区別して扱わない。
NG例
$count = $wpdb->get_var( "SELECT COUNT(*) FROM {$wpdb->posts} WHERE post_author = $author_id" );
if ( 5 === $count ) { // 文字列 '5' が返り、一致しない
// ...
}
OK例
$count = (int) $wpdb->get_var(
$wpdb->prepare( "SELECT COUNT(*) FROM {$wpdb->posts} WHERE post_author = %d", $author_id )
);
使い分け早見表
| メソッド | 取得するもの |
|---|---|
$wpdb->get_var() |
1つの値 |
$wpdb->get_row() |
1行 |
$wpdb->get_col() |
1列(値の配列) |
関連項目
$wpdb->get_row()、$wpdb->get_results()、$wpdb->prepare()
公式リファレンス:wpdb::get_var() | Class method | WordPress Developer Resources

コメント