pg_query

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

pg_query — Execute a query


설명

pg_query(PgSql\Connection $connection = ?, string $query): PgSql\Result|false

pg_query()는 지정된 데이터베이스 connection에서 query를 실행합니다. 대부분의 경우 pg_query_params()가 선호되어야 합니다.

오류가 발생하고 false가 반환되면 연결이 유효한 경우 pg_last_error() 함수를 사용하여 오류의 세부 정보를 검색할 수 있습니다.

메모: connection을 생략할 수도 있지만 스크립트에서 버그를 찾기 어려운 원인이 될 수 있으므로 권장하지 않습니다.

메모: 이 함수는 pg_exec()라고 불렸습니다. pg_exec()는 호환성을 위해 계속 사용할 수 있지만 사용자는 새 이름을 사용하는 것이 좋습니다.


매개변수

connection
PgSql\Connection 인스턴스. connection을 지정하지 않으면 기본 연결이 사용됩니다. 기본 연결은 pg_connect() 또는 pg_pconnect()에 의해 만들어진 마지막 연결입니다.
query
실행할 SQL 문. 여러 명령문이 함수에 전달되면 쿼리 문자열에 명시적인 BEGIN/COMMIT 명령이 포함되지 않는 한 자동으로 하나의 트랜잭션으로 실행됩니다. 그러나 하나의 함수 호출에서 여러 트랜잭션을 사용하는 것은 권장되지 않습니다.

경고 사용자 제공 데이터의 문자열 보간은 매우 위험하며 SQL injection 취약점으로 이어질 수 있습니다. 대부분의 경우 pg_query_params()가 선호되어야 하며, 사용자 제공 값을 쿼리 문자열로 대체하는 대신 매개변수로 전달해야 합니다.

쿼리 문자열로 직접 대체되는 사용자 제공 데이터는 적절하게 이스케이프되어야 합니다.


반환 값

성공 시 PgSql\Result 인스턴스, 실패 시 false입니다.


변경 로그

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

Examples

예제 #1 pg_query() 예제

                  
<?php

$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "An error occurred.\n";
  exit;
}

$result = pg_query($conn, "SELECT author, email FROM authors");
if (!$result) {
  echo "An error occurred.\n";
  exit;
}

while ($row = pg_fetch_row($result)) {
  echo "Author: $row[0]  E-mail: $row[1]";
  echo "<br />\n";
}

?>
                  
                

예제 #2 여러 명령문과 함께 pg_query() 사용

                 
<?php

$conn = pg_pconnect("dbname=publisher");

// these statements will be executed as one transaction

$query = "UPDATE authors SET author=UPPER(author) WHERE id=1;";
$query .= "UPDATE authors SET author=LOWER(author) WHERE id=2;";
$query .= "UPDATE authors SET author=NULL WHERE id=3;";

pg_query($conn, $query);

?>
                 
               

기타