PHP Conference Japan 2024

pg_execute

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

pg_execute傳送請求以使用給定參數執行準備好的語句,並等待結果

說明

pg_execute(PgSql\Connection $connection = ?, 字串 $stmtname, 陣列 $params): PgSql\Result|false

傳送請求以使用給定參數執行準備好的語句,並等待結果。

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"));

?>

另請參閱

  • pg_prepare() - 向伺服器提交請求,以使用給定的參數創建準備好的語句,並等待完成
  • pg_send_prepare() - 發送請求以使用給定的參數創建準備好的語句,無需等待完成
  • pg_query_params() - 向伺服器提交命令並等待結果,能夠將參數與 SQL 命令文本分開傳遞

新增註釋

使用者提供的註釋

此頁面沒有使用者提供的註釋。
To Top