pg_prepare
pg_prepare
(PHP 5 >= 5.1.0, PHP 7)
pg_prepare - 提交一个请求来创建一个带有给定参数的预处理语句,并等待完成。
描述
resource pg_prepare ([ resource $connection ], string $stmtname , string $query )
pg_prepare()
使用pg_execute()或pg_send_execute()创建一个准备好的语句供以后执行。该功能允许重复使用的命令只被解析和计划一次,而不是每次执行它们。pg_prepare()
仅支持PostgreSQL 7.4或更高版本的连接; 使用早期版本时会失败。
该函数将创建一个stmtname
由query
字符串命名的预准备语句,该语句必须包含单个SQL命令。stmtname
可能会创建一个未命名的语句,在这种情况下,任何预先存在的未命名语句会被自动替换; 否则如果在当前会话中已经定义了语句名称,则是错误的。如果使用任何参数,则它们被称为query
$1, $2等。
用于pg_prepare()的
准备语句也可以通过执行SQL PREPARE
语句来创建。(但是pg_prepare()
更灵活,因为它不需要预先指定参数类型。)另外,尽管没有用于删除准备好的语句的PHP函数,但SQL DEALLOCATE
语句可用于此目的。
参数
connection
PostgreSQL数据库连接资源。如果connection
不存在,则使用默认连接。默认连接是pg_connect()或pg_pconnect()所做的最后一个连接。
stmtname
提供准备好的声明的名称。必须是每个连接唯一的。如果指定了“”,则创建一个未命名的语句,覆盖任何先前定义的未命名的语句。
query
参数化的SQL语句。只能包含一个语句。(不允许使用以分号分隔的多个语句)。如果使用任何参数,则它们被称为$ 1,$ 2等。
返回值
返回FALSE
失败,返回成功查询结果资源。
例子
Example #1 Using pg
_
prepare()
<?php
// Connect to a database named "mary"
$dbconn = pg_connect("dbname=mary"
// Prepare a query for execution
$result = pg_prepare($dbconn, "my_query", 'SELECT * FROM shops WHERE name = $1'
// Execute the prepared query. Note that it is not necessary to escape
// the string "Joe's Widgets" in any way
$result = pg_execute($dbconn, "my_query", array("Joe's Widgets")
// Execute the same prepared query, this time with a different parameter
$result = pg_execute($dbconn, "my_query", array("Clothes Clothes Clothes")
?>