pg_update

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

pg_update — 업데이트 테이블


설명

pg_update(
    PgSql\Connection $connection,
    string $table_name,
    array $values,
    array $conditions,
    int $flags = PGSQL_DML_EXEC
): string|bool
                

pg_update() values가 있는 conditions과 일치하는 레코드를 업데이트합니다.

flags가 지정되면 pg_convert()는 지정된 플래그가 있는 values에 적용됩니다.

기본적으로 pg_update()는 원시 값을 전달합니다. 값을 이스케이프하거나 PGSQL_DML_ESCAPE flags를 플래그에 지정해야 합니다. PGSQL_DML_ESCAPE는 매개변수/식별자를 인용하고 이스케이프합니다. 따라서 테이블/열 이름은 대소문자를 구분합니다.

이스케이프나 준비된 쿼리는 LIKE 쿼리, JSON, Array, Regex 등을 보호할 수 없습니다. 이러한 매개변수는 컨텍스트에 따라 처리되어야 합니다. 즉, 값을 이스케이프/유효화합니다.


매개변수

connection
PgSql\Connection 인스턴스.
table_name
행을 업데이트할 테이블의 이름입니다.
values
key가 table_name 테이블의 필드 이름이고 값이 일치하는 행이 업데이트될 대상인 배열입니다.
conditions
키가 table_name 테이블의 필드 이름이고 값이 행이 업데이트되기 위해 충족해야 하는 조건인 배열입니다.
flags
PGSQL_CONV_FORCE_NULL, PGSQL_DML_NO_CONV, PGSQL_DML_ESCAPE, PGSQL_DML_EXEC, PGSQL_DML_ASYNC 또는 PGSQL_DML_STRING 조합. PGSQL_DML_STRING이 플래그의 일부인 경우 쿼리 문자열이 반환됩니다. PGSQL_DML_NO_CONV 또는 PGSQL_DML_ESCAPE가 설정되면 내부적으로 pg_convert()를 호출하지 않습니다.

반환 값

성공하면 true를, 실패하면 false를 반환합니다. PGSQL_DML_STRINGflags를 통해 전달되면 문자열을 반환합니다.


변경 로그

버전 설명
8.1.0 connection 매개변수는 이제 PgSql\Connection 인스턴스를 필요로 합니다. 이전에는 resource가 필요했습니다.

Examples

예제 #1 pg_update() 예제

                  
<?php
  $db = pg_connect('dbname=foo');
  $data = array('field1'=>'AA', 'field2'=>'BB');
  // This is safe somewhat, since all values are escaped.
  // However PostgreSQL supports JSON/Array. These are not
  // safe by neither escape nor prepared query.
  $res = pg_update($db, 'post_log', $_POST, $data);
  if ($res) {
      echo "Data is updated: $res\n";
  } else {
      echo "User must have sent wrong inputs\n";
  }
?>
                  
                

기타

  • pg_convert() - 연관 배열 값을 SQL 문에 적합한 형식으로 변환