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
가 지정되면 지정된 플래그가 있는 conditions
에 pg_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_STRING
이flags
의 일부인 경우 쿼리 문자열이 반환됩니다.PGSQL_DML_NO_CONV
또는PGSQL_DML_ESCAPE
가 설정되면 내부적으로 pg_convert()를 호출하지 않습니다.
반환 값
성공하면 true
를, 실패하면 false
를 반환합니다. PGSQL_DML_STRING
이 flags
를 통해 전달되면 문자열을 반환합니다.
변경 로그
버전 | 설명 |
---|---|
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 문에 적합한 형식으로 변환