버전: 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