pg_prepare
Submits a request to the server to create a prepared statement with the
given parameters, and waits for completion
Description
PgSql\Resultfalse pg_prepare(PgSql\Connection $connection
= ?, string $stmtname
, string $query
)
The function creates a prepared statement named stmtname
from the query
string, which must contain a single SQL command. stmtname
may be ""
to
create an unnamed statement, in which case any pre-existing unnamed
statement is automatically replaced; otherwise it is an error if the
statement name is already defined in the current session. If any parameters
are used, they are referred to in the query
as $1
,
$2
, etc.
Prepared statements for use with pg_prepare can also be created by
executing SQL PREPARE
statements. (But pg_prepare is
more flexible since it does not require parameter types to be pre-specified.) Also,
although there is no PHP function for deleting a prepared statement, the
SQL DEALLOCATE
statement can be used for that purpose.
Parameters
-
connection
-
An PgSql\Connection instance.
When connection
is unspecified, the default connection is used.
The default connection is the last connection made by pg_connect
or pg_pconnect.
WarningAs of PHP 8.1.0, using the default connection is deprecated.
-
stmtname
-
The name to give the prepared statement. Must be unique per-connection. If
""
is specified, then an unnamed statement is created, overwriting any
previously defined unnamed statement.
-
query
-
The parameterized SQL statement. Must contain only a single statement
(multiple statements separated by semi-colons are not allowed). If any parameters
are used, they are referred to as $1
, $2
, etc.
Return Values
An PgSql\Result instance on success, or false
on failure.
Examples
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"));
?>
See Also
- pg_execute
- pg_send_execute