繁體中文
版本: 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