$wpdb->update() の使い方|説明・引数・注意点

説明

$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

コメント

タイトルとURLをコピーしました