2024 日本 PHP 研討會

pg_send_prepare

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

pg_send_prepare發送請求以使用給定參數建立預備語句,無需等待完成

描述

pg_send_prepare(PgSql\Connection $connection, 字串 $statement_name, 字串 $query): 整數|布林值

發送一個請求,使用給定的參數創建一個預備語句,而不等待完成。

這是 pg_prepare() 的非同步版本:如果它能夠發送請求,則返回 true,如果不能,則返回 false。成功呼叫後,呼叫 pg_get_result() 以確定伺服器是否成功創建了預備語句。此函數的參數處理方式與 pg_prepare() 相同。與 pg_prepare() 一樣,它不適用於 7.4 之前的 PostgreSQL 版本。

參數

connection

一個 PgSql\Connection 實例。

statement_name

要賦予預備語句的名稱。每個連線必須是唯一的。如果指定 "",則會創建一個未命名的語句,覆蓋任何先前定義的未命名語句。

query

參數化的 SQL 語句。必須只包含單個語句。(不允許多個以分號分隔的語句。)如果使用任何參數,則將它們稱為 $1、$2 等。

返回值

成功時返回 true,失敗時返回 false0。使用 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);
}

?>

另請參閱

新增註釋

使用者貢獻的註釋

此頁面沒有使用者貢獻的註釋。
To Top