$wpdb->update の仕様
日本語の WordPress codex が不十分だったので、英語版を読むために、訳しました。
ソース
Class Reference/wpdb « WordPress Codex
概要
テーブルの行を更新する。エラーの際、 false を返す。成功すれば更新された行数を返す。
詳細
<?php $wpdb->update( $table, $data, $where, $format = null, $where_format = null ); ?>
table
(文字列) 更新したいテーブル名。
data
(配列)更新するデータ( column => value のペア)。 $data 列も $data 値もいずれも raw でなければならない(どちらもSQLエスケープしてはならない)。つまり GET や POST を使う場合にはデータベースが ending up しないように stripslashes() を利用してスラッシュを避ける必要がある。
where
(配列)WHERE 句( culomn => value のペア)。複数の句は AND でつなげることができる。 $where 列と $where の値のいずれも raw である必要がある。
format
(配列|文字列)(オプション) $data の各値にマップされる配列のフォーマット。文字列であれば、フォーマットは $data のすべての値として使うことができる。
where_format
(配列|文字列)(オプション) $where の各値にマップされる配列のフォーマット。文字列であれば、フォーマットは $where のすべての値として使うことができる。
利用可能なフォーマットの値:%s は文字列、 %d は整数、%s は浮動小数。省略した場合、$where のすべての値は文字列として扱われる。
返り値:この関数は更新した行数、またはエラーの時 false を返す。 $data がすでにデータベースに存在するデータにマッチした場合、1行も更新されないため0が返されることに注意する。これにより、 false の判定は false === $result を使う必要がある。
例
1行を更新する。条件は ID が1で、最初の列の値が文字列、二番目の列の値が整数であることとする。
<?php $wpdb->update( 'table', array( 'column1' => 'value1', // string 'column2' => 'value2' // integer (number) ), array( 'ID' => 1 ), array( '%s', // value1 '%d' // value2 ), array( '%d' ) ); ?>
注意:%d はコンマ付きの値を扱うことができません。数字以外が使用されている値を使う場合は文字列のフォーマット %s を利用してください。