1
0
mirror of https://github.com/php/doc-en.git synced 2026-03-24 07:42:10 +01:00
Files
archived-doc-en/reference/pgsql/functions/pg-execute.xml
KentarouTakeda 5f1a92089f ext/pgsql: Update outdated PostgreSQL version requirements (#5409)
## Summary

The pgsql extension documentation references PostgreSQL versions that have been
outdated for years. The requirements page (`reference/pgsql/setup.xml`) states:

https://www.php.net/manual/en/pgsql.requirements.php

> To use PostgreSQL support, you need PostgreSQL 6.5 or later,
> PostgreSQL 8.0 or later to enable all PostgreSQL module features.

However, the actual minimum libpq versions enforced by php-src are:

| PHP version | Minimum libpq | Commit |
|---|---|---|
| PHP 8.0+ | libpq 9.1 | php/php-src@ce668c0ec6 |
| PHP 8.4+ | libpq 10.0 | php/php-src#14628 |

The "PostgreSQL 6.5" requirement has been incorrect since at least PHP 8.0.0
(released 2020-11-26), which requires libpq 9.1 via `PQlibVersion` check in
`ext/pgsql/config.m4`. As of PHP 8.4, the minimum was further raised to libpq
10.0 via `PQencryptPasswordConn` check in `build/php.m4`.

## Changes

- **setup.xml**: Update requirements to match php-src, following the same
  pattern used by ext/curl and ext/openssl (per-PHP-version listing).
- **14 function pages**: Remove notes referencing PostgreSQL versions 6.3–9.0
  that are no longer relevant given the libpq 10.0 minimum. These include
  version-gated notes for `pg_prepare`, `pg_query_params`, `pg_execute`,
  `pg_escape_string`, `pg_escape_identifier`, `pg_escape_literal`,
  `pg_client_encoding`, `pg_unescape_bytea`, `pg_result_error_field`,
  `pg_parameter_status`, `pg_lo_create`, `pg_version`, `pg_affected_rows`,
  and the general `reference.xml`.
2026-03-10 17:37:21 +00:00

162 lines
4.8 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- splitted from ./en/functions/pgsql.xml, last change in rev 1.2 -->
<refentry xml:id="function.pg-execute" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>pg_execute</refname>
<refpurpose>Sends a request to execute a prepared statement with given parameters, and waits for the result</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type class="union"><type>PgSql\Result</type><type>false</type></type><methodname>pg_execute</methodname>
<methodparam choice="opt"><type>PgSql\Connection</type><parameter>connection</parameter></methodparam>
<methodparam><type>string</type><parameter>stmtname</parameter></methodparam>
<methodparam><type>array</type><parameter>params</parameter></methodparam>
</methodsynopsis>
<para>
Sends a request to execute a prepared statement with given parameters, and
waits for the result.
</para>
<para>
<function>pg_execute</function> is like <function>pg_query_params</function>,
but the command to be executed is
specified by naming a previously-prepared statement, instead of giving a
query string. This feature allows commands that will be used repeatedly to
be parsed and planned just once, rather than each time they are executed.
The statement must have been prepared previously in the current session.
</para>
<para>
The parameters are identical to <function>pg_query_params</function>, except that the name of a
prepared statement is given instead of a query string.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>connection</parameter></term>
<listitem>
&pgsql.parameter.connection-with-unspecified-default;
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>stmtname</parameter></term>
<listitem>
<para>
The name of the prepared statement to execute. if
"" is specified, then the unnamed statement is executed. The name must have
been previously prepared using <function>pg_prepare</function>,
<function>pg_send_prepare</function> or a <literal>PREPARE</literal> SQL
command.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>params</parameter></term>
<listitem>
<para>
An array of parameter values to substitute for the $1, $2, etc. placeholders
in the original prepared query string. The number of elements in the array
must match the number of placeholders.
</para>
<warning>
<para>
Elements are converted to strings by calling this function.
</para>
</warning>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
An <classname>PgSql\Result</classname> instance on success, &return.falseforfailure;.
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
&pgsql.changelog.return-result-object;
&pgsql.changelog.connection-object;
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Using <function>pg_execute</function></title>
<programlisting role="php">
<![CDATA[
<?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"));
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>pg_prepare</function></member>
<member><function>pg_send_prepare</function></member>
<member><function>pg_query_params</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->