git-svn-id: https://svn.php.net/repository/phpdoc/ru/trunk@343169 c90b9560-bf6c-de11-be94-00142212c4b1
This commit is contained in:
Andrey Gromov
2017-10-02 11:52:08 +00:00
parent c977a2b3d0
commit 90d1742c2f
3 changed files with 288 additions and 204 deletions

View File

@ -1,202 +1,210 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 41f14ef421ced23b42a1d792228c47f0ecb825df Maintainer: tmn Status: ready --> <!-- EN-Revision: 61cac7f581eabf91985343c5c83f845f74f3cdd3 Maintainer: tmn Status: ready -->
<!-- Reviewed: no --> <!-- Reviewed: no -->
<!-- $Revision$ --> <!-- $Revision$ -->
<refentry xml:id="mysqli.real-escape-string" xmlns="http://docbook.org/ns/docbook"> <refentry xml:id="mysqli.real-escape-string" xmlns="http://docbook.org/ns/docbook">
<refnamediv> <refnamediv>
<refname>mysqli::real_escape_string</refname> <refname>mysqli::real_escape_string</refname>
<refname>mysqli_real_escape_string</refname> <refname>mysqli_real_escape_string</refname>
<refpurpose> <refpurpose>
Экранирует специальные символы в строке для использования в SQL выражении, Экранирует специальные символы в строке для использования в SQL выражении,
используя текущий набор символов соединения используя текущий набор символов соединения
</refpurpose> </refpurpose>
</refnamediv> </refnamediv>
<refsect1 role="description"> <refsect1 role="description">
&reftitle.description; &reftitle.description;
<para>&style.oop;</para> <para>&style.oop;</para>
<methodsynopsis role="oop"> <methodsynopsis role="oop">
<type>string</type><methodname>mysqli::escape_string</methodname> <type>string</type><methodname>mysqli::escape_string</methodname>
<methodparam><type>string</type><parameter>escapestr</parameter></methodparam> <methodparam><type>string</type><parameter>escapestr</parameter></methodparam>
</methodsynopsis> </methodsynopsis>
<methodsynopsis> <methodsynopsis>
<type>string</type><methodname>mysqli::real_escape_string</methodname> <type>string</type><methodname>mysqli::real_escape_string</methodname>
<methodparam><type>string</type><parameter>escapestr</parameter></methodparam> <methodparam><type>string</type><parameter>escapestr</parameter></methodparam>
</methodsynopsis> </methodsynopsis>
<para>&style.procedural;</para> <para>&style.procedural;</para>
<methodsynopsis> <methodsynopsis>
<type>string</type><methodname>mysqli_real_escape_string</methodname> <type>string</type><methodname>mysqli_real_escape_string</methodname>
<methodparam><type>mysqli</type><parameter>link</parameter></methodparam> <methodparam><type>mysqli</type><parameter>link</parameter></methodparam>
<methodparam><type>string</type><parameter>escapestr</parameter></methodparam> <methodparam><type>string</type><parameter>escapestr</parameter></methodparam>
</methodsynopsis> </methodsynopsis>
<para> <para>
Эта функция используется для создания допустимых в SQL строк, которые можно Эта функция используется для создания допустимых в SQL строк, которые можно
использовать в SQL выражениях. Заданная строка кодируется в экранированную SQL использовать в SQL выражениях. Заданная строка кодируется в экранированную SQL
строку, используя текущий набор символов подключения. строку, используя текущий набор символов подключения.
</para> </para>
<caution> <caution>
<title>Безопасность: набор символов по умолчанию</title> <title>Безопасность: набор символов по умолчанию</title>
<para> <para>
Набор символов должен быть задан либо на стороне сервера, либо с помощью Набор символов должен быть задан либо на стороне сервера, либо с помощью
API функции <function>mysqli_set_charset</function>. В противном случае API функции <function>mysqli_set_charset</function>. В противном случае
<function>mysqli_real_escape_string</function> работать не будет. За <function>mysqli_real_escape_string</function> работать не будет. За
дополнительной информацией обращайтесь к документации дополнительной информацией обращайтесь к документации
<link linkend="mysqlinfo.concepts.charset">наборы символов</link>. <link linkend="mysqlinfo.concepts.charset">наборы символов</link>.
</para> </para>
</caution> </caution>
</refsect1> </refsect1>
<refsect1 role="parameters"> <refsect1 role="parameters">
&reftitle.parameters; &reftitle.parameters;
<para> <para>
<variablelist> <variablelist>
&mysqli.link.description; &mysqli.link.description;
<varlistentry> <varlistentry>
<term><parameter>escapestr</parameter></term> <term><parameter>escapestr</parameter></term>
<listitem> <listitem>
<para> <para>
Строка, которую требуется экранировать. Строка, которую требуется экранировать.
</para> </para>
<para> <para>
Экранируемые символы <literal>NUL (ASCII 0), \n, \r, \, ', ", и Экранируемые символы <literal>NUL (ASCII 0), \n, \r, \, ', ", и
Control-Z</literal>. Control-Z</literal>.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
</variablelist> </variablelist>
</para> </para>
</refsect1> </refsect1>
<refsect1 role="returnvalues"> <refsect1 role="returnvalues">
&reftitle.returnvalues; &reftitle.returnvalues;
<para> <para>
Возвращает экранированную строку. Возвращает экранированную строку.
</para> </para>
</refsect1> </refsect1>
<refsect1 role="examples"> <refsect1 role="errors">
&reftitle.examples; &reftitle.errors;
<example> <para>
<title>Пример использования <methodname>mysqli::real_escape_string</methodname></title> Использование этой функции без корректного идентификатора соединения
<para>&style.oop;</para> вернет &null; и вызовет ошибку уровня <constant>E_WARNING</constant>.
<programlisting role="php"> </para>
<![CDATA[ </refsect1>
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world"); <refsect1 role="examples">
&reftitle.examples;
/* проверка соединения */ <example>
if (mysqli_connect_errno()) { <title>Пример использования <methodname>mysqli::real_escape_string</methodname></title>
printf("Не удалось подключиться: %s\n", mysqli_connect_error()); <para>&style.oop;</para>
exit(); <programlisting role="php">
} <![CDATA[
<?php
$mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City"); $mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$city = "'s Hertogenbosch"; /* проверка соединения */
if (mysqli_connect_errno()) {
/* этот запрос вызовет ошибку, так как мы не экранировали $city */ printf("Не удалось подключиться: %s\n", mysqli_connect_error());
if (!$mysqli->query("INSERT into myCity (Name) VALUES ('$city')")) { exit();
printf("Ошибка: %s\n", $mysqli->sqlstate); }
}
$mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City");
$city = $mysqli->real_escape_string($city);
$city = "'s Hertogenbosch";
/* этот запрос отработает нормально */
if ($mysqli->query("INSERT into myCity (Name) VALUES ('$city')")) { /* этот запрос вызовет ошибку, так как мы не экранировали $city */
printf("%d строк вставлено.\n", $mysqli->affected_rows); if (!$mysqli->query("INSERT into myCity (Name) VALUES ('$city')")) {
} printf("Ошибка: %s\n", $mysqli->sqlstate);
}
$mysqli->close();
?> $city = $mysqli->real_escape_string($city);
]]>
</programlisting> /* этот запрос отработает нормально */
<para>&style.procedural;</para> if ($mysqli->query("INSERT into myCity (Name) VALUES ('$city')")) {
<programlisting role="php"> printf("%d строк вставлено.\n", $mysqli->affected_rows);
<![CDATA[ }
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world"); $mysqli->close();
?>
/* проверка соединения */ ]]>
if (mysqli_connect_errno()) { </programlisting>
printf("Не удалось подключиться: %s\n", mysqli_connect_error()); <para>&style.procedural;</para>
exit(); <programlisting role="php">
} <![CDATA[
<?php
mysqli_query($link, "CREATE TEMPORARY TABLE myCity LIKE City"); $link = mysqli_connect("localhost", "my_user", "my_password", "world");
$city = "'s Hertogenbosch"; /* проверка соединения */
if (mysqli_connect_errno()) {
/* этот запрос вызовет ошибку, так как мы не экранировали $city */ printf("Не удалось подключиться: %s\n", mysqli_connect_error());
if (!mysqli_query($link, "INSERT into myCity (Name) VALUES ('$city')")) { exit();
printf("Ошибка: %s\n", mysqli_sqlstate($link)); }
}
mysqli_query($link, "CREATE TEMPORARY TABLE myCity LIKE City");
$city = mysqli_real_escape_string($link, $city);
$city = "'s Hertogenbosch";
/* этот запрос отработает нормально */
if (mysqli_query($link, "INSERT into myCity (Name) VALUES ('$city')")) { /* этот запрос вызовет ошибку, так как мы не экранировали $city */
printf("%d строк вставлено.\n", mysqli_affected_rows($link)); if (!mysqli_query($link, "INSERT into myCity (Name) VALUES ('$city')")) {
} printf("Ошибка: %s\n", mysqli_sqlstate($link));
}
mysqli_close($link);
?> $city = mysqli_real_escape_string($link, $city);
]]>
</programlisting> /* этот запрос отработает нормально */
&examples.outputs; if (mysqli_query($link, "INSERT into myCity (Name) VALUES ('$city')")) {
<screen> printf("%d строк вставлено.\n", mysqli_affected_rows($link));
<![CDATA[ }
Ошибка: 42000
1 строк вставлено. mysqli_close($link);
]]> ?>
</screen> ]]>
</example> </programlisting>
</refsect1> &examples.outputs;
<screen>
<refsect1 role="notes"> <![CDATA[
&reftitle.notes; Ошибка: 42000
<note> 1 строк вставлено.
<para> ]]>
Тем, кто привык использовать функцию </screen>
<function>mysql_real_escape_string</function>, </example>
следует обратить внимание, что аргументы </refsect1>
<function>mysqli_real_escape_string</function> отличаются от аргументов
<function>mysql_real_escape_string</function>. Идентификатор <refsect1 role="notes">
<parameter>link</parameter> в <function>mysqli_real_escape_string</function> &reftitle.notes;
идет первым, в то время как в <function>mysql_real_escape_string</function> <note>
первой идет экранируемая строка. <para>
</para> Тем, кто привык использовать функцию
</note> <function>mysql_real_escape_string</function>,
</refsect1> следует обратить внимание, что аргументы
<function>mysqli_real_escape_string</function> отличаются от аргументов
<refsect1 role="seealso"> <function>mysql_real_escape_string</function>. Идентификатор
&reftitle.seealso; <parameter>link</parameter> в <function>mysqli_real_escape_string</function>
<para> идет первым, в то время как в <function>mysql_real_escape_string</function>
<simplelist> первой идет экранируемая строка.
<member><function>mysqli_set_charset</function></member> </para>
<member><function>mysqli_character_set_name</function></member> </note>
</simplelist> </refsect1>
</para>
</refsect1> <refsect1 role="seealso">
&reftitle.seealso;
</refentry> <para>
<simplelist>
<!-- Keep this comment at the end of the file <member><function>mysqli_set_charset</function></member>
Local variables: <member><function>mysqli_character_set_name</function></member>
mode: sgml </simplelist>
sgml-omittag:t </para>
sgml-shorttag:t </refsect1>
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t </refentry>
sgml-indent-step:1
sgml-indent-data:t <!-- Keep this comment at the end of the file
indent-tabs-mode:nil Local variables:
sgml-parent-document:nil mode: sgml
sgml-default-dtd-file:"~/.phpdoc/manual.ced" sgml-omittag:t
sgml-exposed-tags:nil sgml-shorttag:t
sgml-local-catalogs:nil sgml-minimize-attributes:nil
sgml-local-ecat-files:nil sgml-always-quote-attributes:t
End: sgml-indent-step:1
vim600: syn=xml fen fdm=syntax fdl=2 si sgml-indent-data:t
vim: et tw=78 syn=sgml indent-tabs-mode:nil
vi: ts=1 sw=1 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
-->

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ --> <!-- $Revision$ -->
<!-- EN-Revision: b2c1d554c77513daa8948351dcd1c030ea2898d1 Maintainer: rjhdby Status: ready --> <!-- EN-Revision: 3b19d69c48fe451a93d7271b0ae7dc09497d739b Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no --> <!-- Reviewed: no -->
<sect1 xml:id="opcache.configuration" xmlns="http://docbook.org/ns/docbook"> <sect1 xml:id="opcache.configuration" xmlns="http://docbook.org/ns/docbook">
@ -182,6 +182,30 @@
<entry>PHP_INI_SYSTEM</entry> <entry>PHP_INI_SYSTEM</entry>
<entry></entry> <entry></entry>
</row> </row>
<row>
<entry><link linkend="ini.opcache.file_update_protection">opcache.file_update_protection</link></entry>
<entry>"2"</entry>
<entry>PHP_INI_ALL</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.opcache.huge_code_pages">opcache.huge_code_pages</link></entry>
<entry>"0"</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.opcache.lockfile_path">opcache.lockfile_path</link></entry>
<entry>"/tmp"</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.opcache.opt_debug_level">opcache.opt_debug_level</link></entry>
<entry>"0"</entry>
<entry>PHP_INI_SYSTEM</entry>
<entry></entry>
</row>
<row> <row>
<entry><link linkend="ini.opcache.file-cache">opcache.file_cache</link></entry> <entry><link linkend="ini.opcache.file-cache">opcache.file_cache</link></entry>
<entry>NULL</entry> <entry>NULL</entry>
@ -621,6 +645,58 @@
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry xml:id="ini.opcache.file_update_protection">
<term>
<parameter>opcache.file_update_protection</parameter>
<type>string</type>
</term>
<listitem>
<para>
Предотвращает кеширование файлов младше указанного количества секунд.
Это помогает предотвратить кеширование не до конца обновленных файлов.
В случае, если у вас все обновления файлов атомарны, можно повысить
производительность задав этот параметр равным "0".
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.huge_code_pages">
<term>
<parameter>opcache.huge_code_pages</parameter>
<type>string</type>
</term>
<listitem>
<para>
Включает или отключает копирование кода PHP (текстового сегмента) в HUGE PAGES.
Это может повысить производительность, но требует соответствующих системных
настроек.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.lockfile_path">
<term>
<parameter>opcache.lockfile_path</parameter>
<type>string</type>
</term>
<listitem>
<para>
Абсолютный путь к хранилищу общих лок-файлов (только *nix)
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.opt_debug_level">
<term>
<parameter>opcache.opt_debug_level</parameter>
<type>string</type>
</term>
<listitem>
<para>
Производит вывод опкодов для отладки разных этапов оптимизации.
0x10000 приведет к выводу опкодов как только они сгенерированы компилятором, до
применения какой либо оптимизации.
0x20000 приведет к выводу опкодов после оптимизации.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.opcache.file-cache"> <varlistentry xml:id="ini.opcache.file-cache">
<term> <term>
<parameter>opcache.file_cache</parameter> <parameter>opcache.file_cache</parameter>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: ead61e4ed793b633a433566b9e8416d17ae2cd4f Maintainer: shein Status: ready --> <!-- EN-Revision: a468efb805ddae9bd886a92c1c313e92b737abe0 Maintainer: shein Status: ready -->
<!-- Reviewed: yes --> <!-- Reviewed: yes -->
<!-- $Revision$ --> <!-- $Revision$ -->
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.sprintf"> <refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.sprintf">