1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-24 07:42:22 +01:00
Files
Sergey Panteleev daef8df962 Обнуление тега Reviewed (#364)
[skip-lint]
[skip-spellcheck]
2021-11-16 13:03:53 +03:00

196 lines
6.5 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: c2eca73ef79ebe78cebb34053e41b565af504c4f Maintainer: aur Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.pg-query" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>pg_query</refname>
<refpurpose>Выполняет запрос</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type class="union"><type>PgSql\Result</type><type>false</type></type><methodname>pg_query</methodname>
<methodparam choice="opt"><type>PgSql\Connection</type><parameter>connection</parameter></methodparam>
<methodparam><type>string</type><parameter>query</parameter></methodparam>
</methodsynopsis>
<para>
<function>pg_query</function> выполняет <parameter>query</parameter>
к указанной в <parameter>connection</parameter> базе данных.
<function>pg_query_params</function> должна быть
предпочтительнее в большинстве случаев.
</para>
<para>
В случае возникновения ошибки функция возвращает &false;, детали ошибки можно
получить с помощью функции <function>pg_last_error</function>, если
соединение с БД не нарушено.
</para>
<para>
<note>
<simpara>
Несмотря на то, что параметр <parameter>connection</parameter> может быть опущен,
делать так не рекомендуется, так как это может привести к
трудно находимым ошибкам в скриптах.
</simpara>
</note>
</para>
<note>
<para>
Ранее данная функция называлась <function>pg_exec</function>.
<function>pg_exec</function> всё ещё доступна в целях обеспечения совместимости,
но лучше использовать новое имя.
</para>
</note>
</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>query</parameter></term>
<listitem>
<para>
Выражение или выражения SQL для выполнения. Если передано несколько выражений они автоматически
выполняются, как одна транзакция если явно не указаны команды BEGIN/COMMIT внутри выражения.
Тем не менее, использовать несколько транзакций в одном вызове функции не рекомендуется.
</para>
<warning>
<para>
Строковое представление пользовательских данных очень опасно и часто
приводит к возможности <link linkend="security.database.sql-injection">SQL
инъекции</link>. В большинстве случаев лучше передавать пользовательские данные
параметром в <function>pg_query_params</function>, а не подставлять их в строку запроса.
</para>
<para>
Любые данные передаваемые от пользователя непосредственно в строку запроса должны быть
<link linkend="function.pg-escape-string">хорошо экранированы</link>.
</para>
</warning>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Экземпляр <classname>PgSql\Result</classname> в случае успешного выполнения&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>Пример использования <function>pg_query</function></title>
<programlisting role="php">
<![CDATA[
<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
echo "Произошла ошибка.\n";
exit;
}
$result = pg_query($conn, "SELECT author, email FROM authors");
if (!$result) {
echo "Произошла ошибка.\n";
exit;
}
while ($row = pg_fetch_row($result)) {
echo "Автор: $row[0] E-mail: $row[1]";
echo "<br />\n";
}
?>
]]>
</programlisting>
</example>
</para>
<para>
<example>
<title>Использование нескольких выражений в <function>pg_query</function></title>
<programlisting role="php">
<![CDATA[
<?php
$conn = pg_pconnect("dbname=publisher");
// эти выражения будут исполнены в одной транзакции
$query = "UPDATE authors SET author=UPPER(author) WHERE id=1;";
$query .= "UPDATE authors SET author=LOWER(author) WHERE id=2;";
$query .= "UPDATE authors SET author=NULL WHERE id=3;";
pg_query($conn, $query);
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>pg_connect</function></member>
<member><function>pg_pconnect</function></member>
<member><function>pg_fetch_array</function></member>
<member><function>pg_fetch_object</function></member>
<member><function>pg_num_rows</function></member>
<member><function>pg_affected_rows</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
-->