(PHP 5 >= 5.1.0, PHP 7, PHP 8)
pg_send_prepare — 發送請求以使用給定參數建立預備語句,無需等待完成
發送一個請求,使用給定的參數創建一個預備語句,而不等待完成。
這是 pg_prepare() 的非同步版本:如果它能夠發送請求,則返回 true
,如果不能,則返回 false
。成功呼叫後,呼叫 pg_get_result() 以確定伺服器是否成功創建了預備語句。此函數的參數處理方式與 pg_prepare() 相同。與 pg_prepare() 一樣,它不適用於 7.4 之前的 PostgreSQL 版本。
connection
一個 PgSql\Connection 實例。
statement_name
要賦予預備語句的名稱。每個連線必須是唯一的。如果指定 "",則會創建一個未命名的語句,覆蓋任何先前定義的未命名語句。
query
參數化的 SQL 語句。必須只包含單個語句。(不允許多個以分號分隔的語句。)如果使用任何參數,則將它們稱為 $1、$2 等。
成功時返回 true
,失敗時返回 false
或 0
。使用 pg_get_result() 來確定查詢結果。
版本 | 描述 |
---|---|
8.1.0 | connection 參數現在需要一個 PgSql\Connection 實例;以前,需要一個資源。 |
範例 #1 使用 pg_send_prepare()
<?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);
}
?>