(PHP 5 >= 5.1.0, PHP 7, PHP 8)
pg_execute — 傳送請求以使用給定參數執行準備好的語句,並等待結果
傳送請求以使用給定參數執行準備好的語句,並等待結果。
pg_execute() 的功能類似 pg_query_params(),但執行的指令是透過指定先前準備好的語句名稱,而不是提供查詢字串。這個特性允許重複使用的指令只需解析和規劃一次,而不是每次執行時都重新進行。該語句必須事先在目前的連線階段準備好。pg_execute() 僅支援 PostgreSQL 7.4 或更高版本的連線;使用較早版本時會失敗。
參數與 pg_query_params() 相同,差別在於提供的是已準備好的語句名稱,而不是查詢字串。
connection
一個 PgSql\Connection 實例。當 connection
未指定時,將使用預設連線。預設連線是最後一次透過 pg_connect() 或 pg_pconnect() 建立的連線。
從 PHP 8.1.0 開始,不建議使用預設連線。
stmtname
要執行的已準備語句的名稱。如果指定為 "",則會執行未命名的語句。該名稱必須先前已使用 pg_prepare()、pg_send_prepare() 或 PREPARE
SQL 指令準備好。
params
一個參數值陣列,用於替換原始已準備查詢字串中的 $1、$2 等佔位符。陣列中的元素數量必須與佔位符的數量相符。
元素會透過呼叫此函式轉換為字串。
成功時返回一個 PgSql\Result 實例,失敗時返回 false
。
版本 | 說明 |
---|---|
8.1.0 | 現在返回一個 PgSql\Result 實例;之前返回的是資源。 |
8.1.0 | connection 參數現在需要一個 PgSql\Connection 實例;之前需要的是資源。 |
範例 #1 使用 pg_execute()
<?php
// 連線到名為 "mary" 的資料庫
$dbconn = pg_connect("dbname=mary");
// 準備要執行的查詢
$result = pg_prepare($dbconn, "my_query", 'SELECT * FROM shops WHERE name = $1');
// 執行準備好的查詢。請注意,不需要以任何方式跳脫
// 字串 "Joe's Widgets"
$result = pg_execute($dbconn, "my_query", array("Joe's Widgets"));
// 執行相同的準備好的查詢,這次使用不同的參數
$result = pg_execute($dbconn, "my_query", array("Clothes Clothes Clothes"));
?>