(PHP 5 >= 5.1.0, PHP 7, PHP 8)
pg_send_execute — 发送请求以使用给定参数执行准备好的语句,但不等待结果
发送请求以使用给定参数执行准备好的语句,但不等待结果。
这类似于 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
,失败时返回 false
或 0
。使用 pg_get_result() 确定查询结果。
版本 | 描述 |
---|---|
8.1.0 | connection 参数现在需要一个 PgSql\Connection 实例;以前,需要一个 资源。 |
示例 #1 使用 pg_send_execute()
<?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);
}
?>