バージョン: v2.3.0
update
テーブル内のレコードを更新します。
update($table, $data, $where)
table [string]
対象のテーブル名。
data [array]
更新するカラムと値の組み合わせ。
where [array] (省略可)
更新対象を絞り込む WHERE 条件。
戻り値
[PDOStatement] 実行されたクエリの PDOStatement インスタンス。
insert() と同様に、このメソッドは配列のシリアライズと自動型判定をサポートします。また、算術更新のための [+]、[-]、[*]、[/] 演算子も利用できます。class Foo {
var $bar = "cat";
public function __wakeup()
{
$this->bar = "dog";
}
}
$object_data = new Foo();
$fp = fopen($_FILES[ "file" ][ "tmp_name" ], "rb");
$database->update("account", [
"type" => "user",
// すべての年齢を 1 増やします。
"age[+]" => 1,
// すべてのレベルを 5 減らします。
"level[-]" => 5,
// すべてのスコアを 2 倍にします。
"score[*]" => 2,
// 配列値。
"lang" => ["en", "fr", "jp", "cn"],
// JSON としてエンコードする配列値。
"lang [JSON]" => ["en", "fr", "jp", "cn"],
// 真偽値。
"is_locked" => true,
// オブジェクト値。
"object_data" => $object_data,
// ラージオブジェクト(LOB)。
"image" => $fp
], [
"user_id[<]" => 1000
]);
// `update()` は PDOStatement を返すため、必要に応じてそのメソッドを呼び出せます。
$data = $database->update("account", [
"age[+]" => 1
], [
"user_id[>]" => 100
]);
// 直前の SQL 文で影響を受けた行数を返します。
echo $data->rowCount();
// 参考: https://php.net/manual/en/class.pdostatement.php