フシギにステキな素早いヤバさ

フシギにステキな素早いヤバさを追いかけて。俺は行くだろう。

$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 を利用してください。