説明
$wpdb->get_row() は、SELECT文を実行し、1行分の結果を取得するメソッドです。
基本構文
$wpdb->get_row( string $query = null, string $output = OBJECT, int $y = 0 ): array|object|null|void
引数
$query:SQL文$output:返却形式$y:何行目を返すか(0始まり)
戻り値
1行分のデータ。該当なしなら null。
使い方(サンプル)
global $wpdb;
$row = $wpdb->get_row(
$wpdb->prepare( "SELECT * FROM {$wpdb->posts} WHERE ID = %d", 123 )
);
注意点
- 値は
prepare()でプレースホルダーに渡します。 - 該当なしの場合に備え、
nullの判定をします。
実務での使いどころ
- 1行だけの結果を、取得するとき(IDを指定した、1件の取得など)。
よくあるミスと対処
- 変数を、直接SQLに入れている。
$wpdb->prepare()を使う。 - 見つからないときは
null。確認せずに、プロパティへアクセスする。 - 複数行を取得したいのに、使っている。2行目以降は、取得されない。
NG例
$row = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}logs WHERE id = $id" );
echo $row->message; // 変数を直接入れ、見つからない場合も確認していない
OK例
$row = $wpdb->get_row(
$wpdb->prepare( "SELECT * FROM {$wpdb->prefix}logs WHERE id = %d", $id )
);
if ( $row ) {
echo esc_html( $row->message );
}
使い分け早見表
| メソッド | 取得するもの |
|---|---|
$wpdb->get_row() |
1行 |
$wpdb->get_results() |
複数行 |
$wpdb->get_var() |
1つの値 |
関連項目
$wpdb->get_results()、$wpdb->get_var()
公式リファレンス:wpdb::get_row() | Class method | WordPress Developer Resources

コメント