(PHP 5 >= 5.1.0,PHP 7,PHP 8)
pg_execute — 使用给定参数发送请求以执行准备好的语句,并等待结果
发送请求以使用给定参数执行准备好的语句,并等待结果。
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 实例;以前返回的是一个 资源。 |
8.1.0 | connection 参数现在需要一个 PgSql\Connection 实例;以前需要的是一个 资源。 |
示例 #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"));
?>