pg_prepare

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

pg_prepare — 주어진 매개변수로 준비된 명령문 생성 요청을 제출하고 완료될 때까지 기다립니다.


설명

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

pg_prepare()pg_execute() 또는 pg_send_execute()를 사용하여 나중에 실행할 수 있도록 준비된 명령문을 생성합니다. 이 기능을 사용하면 반복적으로 사용되는 명령을 실행할 때마다가 아니라 한 번만 구문 분석하고 계획할 수 있습니다. pg_prepare()는 PostgreSQL 7.4 이상 연결에 대해서만 지원됩니다. 이전 버전을 사용할 때 실패합니다.

이 함수는 단일 SQL 명령을 포함해야 하는 query 문자열에서 stmtname이라는 준비된 문을 만듭니다. stmtname은 명명되지 않은 명령문을 생성하기 위해 ""일 수 있습니다. 이 경우 기존의 명명되지 않은 명령문이 자동으로 대체됩니다. 그렇지 않으면 명령문 이름이 현재 세션에 이미 정의되어 있으면 오류입니다. 매개변수가 사용되면 query에서 $1, $2 등으로 참조됩니다.

pg_prepare()와 함께 사용할 준비된 문은 SQL PREPARE 문을 실행하여 만들 수도 있습니다. (단, pg_prepare()는 매개변수 유형을 미리 지정할 필요가 없기 때문에 더 유연합니다.) 또한, 준비된 문장을 삭제하는 PHP 함수는 없지만 SQL DEALLOCATE 문을 사용할 수 있습니다.


매개변수

connection
PgSql\Connection 인스턴스. connection을 지정하지 않으면 기본 연결이 사용됩니다. 기본 연결은 pg_connect() 또는 pg_pconnect()에 의해 만들어진 마지막 연결입니다.
stmtname
준비된 명령문을 제공할 이름입니다. 연결별로 고유해야 합니다. ""가 지정되면 이름 없는 명령문이 생성되어 이전에 정의된 이름 없는 명령문을 덮어씁니다.
query
매개변수화된 SQL 문. 하나의 문만 포함해야 합니다. (세미콜론으로 구분된 여러 문장은 허용되지 않습니다.) 매개변수를 사용하는 경우 $1, $2 등으로 지칭합니다.

반환 값

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


변경 로그

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

Examples

예제 #1 pg_prepare() 사용

                  
<?php
// Connect to a database named "mary"
$dbconn = pg_connect("dbname=mary");

// Prepare a query for execution
$result = pg_prepare($dbconn, "my_query", 'SELECT * FROM shops WHERE name = $1');

// Execute the prepared query.  Note that it is not necessary to escape
// the string "Joe's Widgets" in any way
$result = pg_execute($dbconn, "my_query", array("Joe's Widgets"));

// Execute the same prepared query, this time with a different parameter
$result = pg_execute($dbconn, "my_query", array("Clothes Clothes Clothes"));

?>
                  
                

기타

  • pg_execute() - 주어진 매개변수로 준비된 명령문을 실행하라는 요청을 보내고 결과를 기다립니다.
  • pg_send_execute() - 결과를 기다리지 않고 주어진 매개변수로 준비된 명령문을 실행하라는 요청을 보냅니다.