简体中文
版本: v2.3.0

update

更新数据表中的记录。

update($table, $data, $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