pg_delete

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

pg_delete — Deletes records


설명

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

pg_delete()conditions의 키와 값으로 지정된 테이블에서 레코드를 삭제합니다.

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

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

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


매개변수

connection
PgSql\Connection 인스턴스.
table_name
rows을 삭제할 테이블의 이름입니다.
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_STRINGflags의 일부인 경우 쿼리 문자열이 반환됩니다. PGSQL_DML_NO_CONV 또는 PGSQL_DML_ESCAPE가 설정되면 내부적으로 pg_convert()를 호출하지 않습니다.

반환 값

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


변경 로그

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

Examples

예제 #1 pg_delete() 예제

                  
<?php
  $db = pg_connect('dbname=foo');
  // 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_delete($db, 'post_log', $_POST, PG_DML_ESCAPE);
  if ($res) {
      echo "POST data is deleted: $res\n";
  } else {
      echo "User must have sent wrong inputs\n";
  }
?>
                  
                

기타

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