Updated translation.

git-svn-id: https://svn.php.net/repository/phpdoc/ru/trunk@311474 c90b9560-bf6c-de11-be94-00142212c4b1
This commit is contained in:
Shein Alexey
2011-05-27 08:27:08 +00:00
parent b01b429f9e
commit 462fbc681e

View File

@ -1,116 +1,159 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 96c9d88bad9a7d7d44bfb7f26c226df7ee9ddf26 Maintainer: shein Status: ready -->
<!-- Reviewed: no -->
<!-- $Revision$ -->
<!-- EN-Revision: n/a Maintainer: lovchy Status: ready -->
<!-- splitted from ./en/functions/mysql.xml, last change in rev 1.2 -->
<refentry xml:id="function.mysql-affected-rows" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>mysql_affected_rows</refname>
<refpurpose>Возвращает число затронуиых прошлой операцией рядов.</refpurpose>
</refnamediv>
<refsect1>
<title>Описание</title>
<methodsynopsis>
<type>int</type><methodname>mysql_affected_rows</methodname>
<methodparam choice="opt"><type>resource</type><parameter>link_identifier</parameter></methodparam>
</methodsynopsis>
<para>
<function>mysql_affected_rows</function> возвращает количество
рядов, затронутых последним INSERT, UPDATE, DELETE запросом
к серверу, на который ссылается указатель <parameter>link_identifier</parameter>. Если
ресурс не указан, функция использует последнее, успешное соединение,
выполненное с помощью функции <function>mysql_connect</function>.
</para>
<note>
<para>
При использовании транзакций <function>mysql_affected_rows</function> надо вызывать
после INSERT, UPDATE, DELETE запроса, но не после подтверждения.
</para>
</note>
<para>
Если последний запрос был DELETE без указания WHERE и, соответственно,
таблица была очищена, функция вернёт ноль (0).
</para>
<note>
<para>
При использовании UPDATE, MySQL не обновит колонки, уже содержащие новое
значение. Вследствие этого, функция <function>mysql_affected_rows</function>
не всегда возвращает количество рядов, подошедших по условия, только
количество рядов, обновлённых запросом.
</para>
</note>
<para>
<function>mysql_affected_rows</function> не работает с SELECT -- только с
запросами, модифицирующими таблицу. Чтобы получить количество рядов,
возвращённых SELECT-запросом, используйте функцию
<function>mysql_num_rows</function>.
</para>
<para>
Если последний запрос был неудачным, функция вернёт -1.
<example>
<title>DELETE-запрос</title>
<programlisting role="php">
<refentry xml:id="function.mysql-affected-rows" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>mysql_affected_rows</refname>
<refpurpose>Возвращает число затронутых прошлой операцией рядов</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>int</type><methodname>mysql_affected_rows</methodname>
<methodparam choice="opt"><type>resource</type><parameter>link_identifier</parameter></methodparam>
</methodsynopsis>
<para>
Возвращает количество рядов, затронутых последним INSERT, UPDATE,
REPLACE или DELETE запросом, связанным с дескриптором
<parameter>link_identifier</parameter>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
&mysql.linkid.description;
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Возвращает количество измененных записей в случае успеха, и -1
в случае если последний запрос не удался.
</para>
<para>
Если последний запрос был DELETE без указания WHERE и, соответственно,
таблица была очищена, функция вернёт ноль во всех версиях MySQL
до 4.1.2.
</para>
<para>
При использовании UPDATE, MySQL не обновит колонки, уже содержащие новое
значение. Вследствие этого, функция <function>mysql_affected_rows</function>
не всегда возвращает количество рядов, подошедших под условия, только
количество рядов, обновлённых запросом.
</para>
<para>
Запрос REPLACE сначала удаляет запись с указанным первичным ключом,
а потом вставляет новую. Данная функция возвращает количество
удаленных записей вместе с количеством вставленных.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Пример использования <function>mysql_affected_rows</function></title>
<programlisting role="php">
<![CDATA[
<?php
/* соединямеся с базой данных */
mysql_pconnect("localhost", "mysql_user", "mysql_password") or
die("Could not connect: " . mysql_error());
mysql_select_db("mydb");
/* здесь функция вернёт корректное число удалённых записей */
mysql_query("DELETE FROM mytable WHERE id < 10");
printf ("Records deleted: %d\n", mysql_affected_rows());
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Ошибка соединения: ' . mysql_error());
}
mysql_select_db('mydb');
/* без указания WHERE в запросе, функция всегда возвращает 0 */
mysql_query("DELETE FROM mytable");
printf ("Records deleted: %d\n", mysql_affected_rows());
/* здесь функция вернёт корректное число удалённых записей */
mysql_query('DELETE FROM mytable WHERE id < 10');
printf("Удалено записей: %d\n", mysql_affected_rows());
/* если WHERE всегда возвращает false, то функция возвращает 0 */
mysql_query('DELETE FROM mytable WHERE 0');
printf("Удалено записей: %d\n", mysql_affected_rows());
?>
]]>
</programlisting>
<para>
Вышеописанный пример выдаст следующий результат:
</para>
<screen>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
Records deleted: 10
Records deleted: 0
Удалено записей: 10
Удалено записей: 0
]]>
</screen>
</example>
</para>
<para>
<example>
<title>UPDATE-запрос</title>
<programlisting role="php">
</screen>
</example>
</para>
<para>
<example>
<title>Пример использования <function>mysql_affected_rows</function> с транзакциями</title>
<programlisting role="php">
<![CDATA[
<?php
/* соединямеся с базой данных */
mysql_pconnect("localhost", "mysql_user", "mysql_password") or
die("Could not connect: " . mysql_error());
mysql_select_db("mydb");
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Ошибка соединения: ' . mysql_error());
}
mysql_select_db('mydb');
/* Обновляем ряды */
mysql_query("UPDATE mytable SET used=1 WHERE id < 10");
printf ("Updated records: %d\n", mysql_affected_rows());
mysql_query("COMMIT");
/* Обновляем ряды */
mysql_query("UPDATE mytable SET used=1 WHERE id < 10");
printf ("Обновлено записей: %d\n", mysql_affected_rows());
mysql_query("COMMIT");
?>
]]>
</programlisting>
<para>
Вышеописанный пример выдаст следующий результат:
</para>
<screen>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
Updated Records: 10
Обновлено записей: 10
]]>
</screen>
</example>
</para>
<para>
См. также <function>mysql_num_rows</function>,
<function>mysql_info</function>.
</para>
</refsect1>
</refentry>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<title>Транзакции</title>
<para>
При использовании транзакций
<function>mysql_affected_rows</function> нужно вызывать
после запросов INSERT, UPDATE, DELETE, но не после
COMMIT.
</para>
</note>
<note>
<title>Запросы SELECT</title>
<para>
Чтобы получить количество рядов, возвращённых SELECT-запросом,
используйте функцию <function>mysql_num_rows</function>.
</para>
</note>
<note>
<title>Каскадные внешние ключи</title>
<para>
<function>mysql_affected_rows</function> не подсчитывает ряды,
неявно измененные ограничениями ON DELETE CASCADE и/или
ON UPDATE CASCADE.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>mysql_num_rows</function></member>
<member><function>mysql_info</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
@ -123,7 +166,7 @@ sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../~/.phpdoc/manual.ced"
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil