版本: 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