PHP Conference Japan 2024

pg_send_prepare

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

pg_send_prepare发送请求以使用给定参数创建准备好的语句,而不等待完成

描述

pg_send_prepare(PgSql\Connection $connection, string $statement_name, string $query): int|bool

发送请求以使用给定参数创建准备好的语句,而不等待完成。

这是 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("Could not connect");

// 准备一个查询以供执行
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