(PHP 5 >= 5.1.0, PHP 7, PHP 8)
pg_send_execute — 發送請求以執行具有給定參數的預備語句,無需等待結果
發送一個請求,使用給定的參數執行一個已準備好的語句,但不等待結果。
這類似於 pg_send_query_params(),但要執行的命令是通過命名先前準備好的語句來指定的,而不是給出查詢字串。此函數的參數處理方式與 pg_execute() 相同。 與 pg_execute() 一樣,它不適用於 7.4 以前的 PostgreSQL 版本。
connection
一個 PgSql\Connection 實例。
statement_name
要執行的已準備語句的名稱。如果指定為 "",則執行未命名的語句。該名稱必須先前已使用 pg_prepare()、pg_send_prepare() 或 SQL 命令 PREPARE
準備好。
params
一個參數值的陣列,用於替換原始已準備查詢字串中的 $1、$2 等佔位符。陣列中元素的數量必須與佔位符的數量相符。
成功時返回 true
,失敗時返回 false
或 0
。使用 pg_get_result() 來確定查詢結果。
版本 | 說明 |
---|---|
8.1.0 | connection 參數現在需要一個 PgSql\Connection 實例;以前需要一個 資源。 |
範例 #1 使用 pg_send_execute()
<?php
$dbconn = pg_connect("dbname=publisher") or die("無法連線");
// 準備一個查詢以供執行
if (!pg_connection_busy($dbconn)) {
pg_send_prepare($dbconn, "my_query", 'SELECT * FROM shops WHERE name = $1');
$res1 = pg_get_result($dbconn);
}
// 執行準備好的查詢。請注意,不需要以任何方式跳脫
// 字串 "Joe's Widgets"
if (!pg_connection_busy($dbconn)) {
pg_send_execute($dbconn, "my_query", array("Joe's Widgets"));
$res2 = pg_get_result($dbconn);
}
// 執行相同的準備好的查詢,這次使用不同的參數
if (!pg_connection_busy($dbconn)) {
pg_send_execute($dbconn, "my_query", array("Clothes Clothes Clothes"));
$res3 = pg_get_result($dbconn);
}
?>