Files
php-doc-ru/reference/pdo/pdostatement/rowcount.xml

151 lines
5.1 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: 28529d3539b850e870e3aa97570f4db0e53daa03 Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="pdostatement.rowcount" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>PDOStatement::rowCount</refname>
<refpurpose>
Возвращает количество строк, затронутых последним SQL-запросом
</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis role="PDOStatement">
<modifier>public</modifier> <type>int</type><methodname>PDOStatement::rowCount</methodname>
<void/>
</methodsynopsis>
<para>
<methodname>PDOStatement::rowCount</methodname> возвращает количество строк,
которые были затронуты в ходе выполнения последнего запроса
DELETE, INSERT или UPDATE, запущенного соответствующим объектом
<literal>PDOStatement</literal>.
</para>
<para>
Для операторов, создающих наборы результатов, таких как <literal>SELECT</literal>,
поведение не определено и может быть различным для каждого драйвера.
Некоторые базы данных могут возвращать количество строк, созданных этим оператором (например,
MySQL в буферизованном режиме), но такое поведение не гарантируется для всех баз данных
и не должно использоваться в переносимых приложениях.
</para>
<note>
<para>
Этот метод всегда возвращает "0" (ноль) с драйвером SQLite,
а с драйвером PostgreSQL только при установке атрибута оператора <constant>PDO::ATTR_CURSOR</constant> равным <constant>PDO::CURSOR_SCROLL</constant>.
</para>
</note>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
&no.function.parameters;
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Возвращает количество строк.
</para>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
&pdo.errors;
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Получение количества удалённых строк</title>
<para>
<methodname>PDOStatement::rowCount</methodname> возвращает количество строк,
изменённых выражениями DELETE, INSERT или UPDATE.
</para>
<programlisting role="php">
<![CDATA[
<?php
/* Удалим все строки из таблицы FRUIT */
$del = $dbh->prepare('DELETE FROM fruit');
$del->execute();
/* Выведем число удалённых строк */
print "Количество удалённых строк:\n";
$count = $del->rowCount();
print "Удалено $count строк.\n";
?>
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
Количество удалённых строк:
Удалено 9 строк.
]]>
</screen>
</example>
<example>
<title>
Подсчёт строк, возвращаемых выражением SELECT
</title>
<para>
Для большинства СУБД <methodname>PDOStatement::rowCount</methodname> не
возвращает количество строк, затронутых SELECT запросом. Вместо этого метода
запустите через <methodname>PDO::query</methodname> выражение SELECT COUNT(*)
с тем же текстом запроса. Затем методом
<methodname>PDOStatement::fetchColumn</methodname> вы получите число совпадающих строк.
</para>
<programlisting role="php">
<![CDATA[
<?php
$sql = "SELECT COUNT(*) FROM fruit WHERE calories > 100";
$res = $conn->query($sql);
$count = $res->fetchColumn();
print "Совпадающих записей: " . $count;
?>
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
Совпадающих записей: 2
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><methodname>PDOStatement::columnCount</methodname></member>
<member><methodname>PDOStatement::fetchColumn</methodname></member>
<member><methodname>PDO::query</methodname></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
-->