説明
$wpdb->update() は、テーブルの行を更新するメソッドです。
基本構文
$wpdb->update( string $table, array $data, array $where, array|string $format = null, array|string $where_format = null ): int|false
引数
$table:テーブル名$data:更新する列と値$where:条件$format:値の書式$where_format:条件の書式
戻り値
更新した行数。失敗時は false。
使い方(サンプル)
global $wpdb;
$wpdb->update( $wpdb->prefix . 'my_table', array( 'name' => 'jiro' ), array( 'id' => 1 ) );
注意点
- 変更がなかった場合は
0が返ります。falseとの区別に注意します。 $whereを空にしないようにします。
実務での使いどころ
- 独自のテーブルの、行を更新するとき。
- 条件(
$where)に合う行の値を、変更するとき。
よくあるミスと対処
- 戻り値の
0を、失敗と考える。値が変わらなかったときも、0が返る。失敗は、false。 $whereを、指定し忘れる、または広すぎる条件にする。- データを、あらかじめ
prepare()などで処理してから渡している。二重にエスケープされる。
NG例
if ( ! $wpdb->update( $table, $data, $where ) ) {
// 値が変わらなかっただけでも、失敗として扱ってしまう
}
OK例
$result = $wpdb->update(
$wpdb->prefix . 'logs',
array( 'message' => $message ),
array( 'id' => $id ),
array( '%s' ),
array( '%d' )
);
if ( false === $result ) {
// エラー
}
使い分け早見表
| やりたいこと | 使うもの |
|---|---|
| 1行を更新 | $wpdb->update() |
| 1行を追加 | $wpdb->insert() |
| 1行を削除 | $wpdb->delete() |
関連項目
$wpdb->insert()、$wpdb->delete()
公式リファレンス:wpdb::update() | Class method | WordPress Developer Resources

コメント