(PHP 5 >= 5.1.0, PHP 7, PHP 8)
pg_send_prepare — 发送一个请求以使用给定参数创建准备好的语句,但不等待完成
发送一个请求以使用给定参数创建准备好的语句,但不等待完成。
这是 pg_prepare() 的异步版本:如果能够调度请求,则返回 true
,否则返回 false
。成功调用后,调用 pg_get_result() 以确定服务器是否成功创建了准备好的语句。该函数的参数与 pg_prepare() 处理方式相同。与 pg_prepare() 一样,它在 PostgreSQL 7.4 之前的版本上不起作用。
connection
一个 PgSql\Connection 实例。
statement_name
要为准备好的语句指定的名称。每个连接必须是唯一的。如果指定了 "",则将创建一个未命名的语句,覆盖之前定义的任何未命名的语句。
query
参数化的 SQL 语句。必须只包含单个语句。(多个语句用分号分隔是不允许的。)如果使用了任何参数,则它们被称为 $1,$2 等。
成功时返回 true
,失败时返回 false
或 0
。使用 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);
}
?>