PHP Conference Japan 2024

pg_execute

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

pg_execute发送请求以使用给定参数执行预准备语句,并等待结果

描述

pg_execute(PgSql\Connection $connection = ?, string $stmtname, array $params): PgSql\Result|false

发送请求以使用给定参数执行预准备语句,并等待结果。

pg_execute() 类似于 pg_query_params(),但要执行的命令是通过命名先前准备好的语句来指定的,而不是提供查询字符串。此功能允许重复使用的命令只解析和规划一次,而不是每次执行时都进行。该语句必须在当前会话中先前已准备就绪。pg_execute() 仅支持针对 PostgreSQL 7.4 或更高版本的连接;在使用早期版本时会失败。

参数与 pg_query_params() 相同,只是提供了预准备语句的名称而不是查询字符串。

参数

connection

一个 PgSql\Connection 实例。当 connection 未指定时,将使用默认连接。默认连接是由 pg_connect()pg_pconnect() 进行的最后一次连接。

警告

从 PHP 8.1.0 开始,使用默认连接已弃用。

stmtname

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

params

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

警告

通过调用此函数将元素转换为字符串。

返回值

成功时返回一个 PgSql\Result 实例,失败时返回 false

变更日志

版本 描述
8.1.0 现在返回一个 PgSql\Result 实例;以前返回的是一个 resource
8.1.0 connection 参数现在期望一个 PgSql\Connection 实例;以前期望的是一个 resource

范例

示例 #1 使用 pg_execute()

<?php
// 连接到名为“mary”的数据库
$dbconn = pg_connect("dbname=mary");

// 准备执行查询
$result = pg_prepare($dbconn, "my_query", 'SELECT * FROM shops WHERE name = $1');

// 执行预准备的查询。请注意,无需以任何方式转义字符串“Joe's Widgets”
$result = pg_execute($dbconn, "my_query", array("Joe's Widgets"));

// 执行相同的预准备查询,这次使用不同的参数
$result = pg_execute($dbconn, "my_query", array("Clothes Clothes Clothes"));

?>

参见

  • pg_prepare() - 向服务器提交请求,以使用给定参数创建预准备语句,并等待完成
  • pg_send_prepare() - 发送请求以使用给定参数创建预准备语句,无需等待完成
  • pg_query_params() - 向服务器提交命令并等待结果,并且能够将参数与SQL命令文本分开传递

添加注释

用户贡献的注释

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