2024 年 PHP 开发者大会(日本)

pg_send_execute

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

pg_send_execute发送执行已准备好的语句(带有给定参数)的请求,无需等待结果

描述

pg_send_execute(PgSql\Connection $connection, string $statement_name, array $params): int|bool

发送执行已准备好的语句(带有给定参数)的请求,无需等待结果。

这类似于 pg_send_query_params(),但是要执行的命令是通过命名先前准备好的语句来指定的,而不是给出查询字符串。函数的参数处理与 pg_execute() 完全相同。与 pg_execute() 一样,它在 7.4 之前的 PostgreSQL 版本中无法工作。

参数

connection

一个 PgSql\Connection 实例。

statement_name

要执行的已准备语句的名称。如果指定为 "",则执行未命名的语句。该名称必须先前已使用 pg_prepare()pg_send_prepare()PREPARE SQL 命令进行准备。

params

一个参数值数组,用于替换原始已准备查询字符串中的 $1、$2 等占位符。数组中的元素数量必须与占位符的数量匹配。

返回值

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

?>

参见

  • pg_prepare() - 向服务器提交创建具有给定参数的已准备语句的请求,并等待完成
  • pg_send_prepare() - 发送创建具有给定参数的已准备语句的请求,无需等待完成
  • pg_execute() - 发送执行具有给定参数的已准备语句的请求,并等待结果

添加注释

用户贡献的注释

此页面没有用户贡献的注释。
To Top