Web студия "GrandView"
  Главная   Написать Контакты
   
   
О проекте
Руководство php
 

mysqli_affected_rows

(PHP 5)

mysqli_affected_rows

(no version information, might be only in CVS)

mysqli->affected_rows -- Получить количество рядов, затронутых предыдущей операцией

Описание

Процедурный стиль:

int mysqli_affected_rows ( mysqli link )

Объектно-ориентированный стиль (свойство):

class mysqli {

int affected_rows

}

Функция mysqli_affected_rows() возвращает количество рядов, затронутых последним INSERT, UPDATE, REPLACE или DELETE запросом, ассоциированным с передаваемым параметром link. Если последний запрос вызвал ошибку, функция вернет -1.

Замечание: Для выражений SELECT функция mysqli_affected_rows() работает подобно mysqli_num_rows().

Функция mysqli_affected_rows() работает только с запросами, которые модифицируют данные в таблице. Чтобы получить количество рядов из запроса SELECT, используйте вместо нее функцию mysqli_num_rows().

Возвращаемые значения

Целое число больше нуля отражает количество затронутых или найденных рядов. Ноль сообщает, что ни одна запись не была обновлена выражением UPDATE, ни один ряд не совпадает с выражением WHERE в запросе или о том, что ни один запрос не был выполнен. -1 сообщает, что запрос вернул ошибку.

Замечание: Если количество затронутых рядов больше максимального целого числа, количество затронутых рядов будет возвращено в виде строки.

Смотрите также

mysqli_num_rows() и mysqli_info().

Примеры

Пример 1. Объектно-ориентированный стиль

<?php
$mysqli
= new mysqli("localhost", "my_user", "my_password", "world");

/* Проверка подключения */
if (mysqli_connect_errno()) {
   
printf("Ошибка подключения: %s\n", mysqli_connect_error());
    exit();
}

/* Вставки строк */
$mysqli->query("CREATE TABLE Language SELECT * from CountryLanguage");
printf("Затронутые ряды (INSERT): %d\n", $mysqli->affected_rows);

$mysqli->query("ALTER TABLE Language ADD Status int default 0");

/* Обновление строк */
$mysqli->query("UPDATE Language SET Status=1 WHERE Percentage > 50");
printf("Затронутые ряды (UPDATE): %d\n", $mysqli->affected_rows);

/* Удаление строк */
$mysqli->query("DELETE FROM Language WHERE Percentage < 50");
printf("Затронутые ряды (DELETE): %d\n", $mysqli->affected_rows);

/* Выборка всех строк */
$result = $mysqli->query("SELECT CountryCode FROM Language");
printf("Затронутые ряды (SELECT): %d\n", $mysqli->affected_rows);

$result->close();

/* Удаление таблицы Language */
$mysqli->query("DROP TABLE Language");

/* Закрытие соединения */
$mysqli->close();
?>

Пример 2. Процедурный стиль

<?php
$link
= mysqli_connect("localhost", "my_user", "my_password", "world");

if (!
$link) {
   
printf("Невозможно подключиться к localhost. Ошибка: %s\n", mysqli_connect_error());
    exit();
}

/* Вставка строк */
mysqli_query($link, "CREATE TABLE Language SELECT * from CountryLanguage");
printf("Затронутые ряды (INSERT): %d\n", mysqli_affected_rows($link));

mysqli_query($link, "ALTER TABLE Language ADD Status int default 0");

/* Обновление строк */
mysqli_query($link, "UPDATE Language SET Status=1 WHERE Percentage > 50");
printf("Затронутые ряды (UPDATE): %d\n", mysqli_affected_rows($link));

/* Удаление строк */
mysqli_query($link, "DELETE FROM Language WHERE Percentage < 50");
printf("Затронутые ряды (DELETE): %d\n", mysqli_affected_rows($link));

/* Выборка всех строк */
$result = mysqli_query($link, "SELECT CountryCode FROM Language");
printf("Затронутые ряды (SELECT): %d\n", mysqli_affected_rows($link));

mysqli_free_result($result);

/* Удаление таблицы Language */
mysqli_query($link, "DROP TABLE Language");

/* Закрытие соединения */
mysqli_close($link);
?>

Результат выполнения данного примера:

Затронутые ряды (INSERT): 984
Затронутые ряды (UPDATE): 168
Затронутые ряды (DELETE): 815
Затронутые ряды (SELECT): 169


add a note add a note User Contributed Notes
mysqli_affected_rows
Typer85 at gmail dot com
31-Dec-2006 08:35
Just to clarify about the possible return values in this Manual those not familiar with PHP and MySQL.

"-1 indicates that the query returned an error."

-1 will be returned if the query itself can not be issued to the server, possibly because of syntax error AND if the last query was not either an Insert or Update statement.
sean at lookin3d dot com
12-Apr-2006 01:48
mysqli_affected_rows will return 0 if you run a UPDATE command with the same variables that already exist

Here is a example

db row from 'test' table
----------
id = 1
name = test

mysqli_query($db,"UPDATE `test` SET `name`='test' WHERE `id`='1'");

$i=mysqli_affected_rows($db);

$i Will Be Zero Or False

mysqli_autocommit> <mysqli
Last updated: Sat, 27 Jan 2007
 
 
Новости
11 июля 2007
Сайт запущен
© 2007 info@grandviewstudio.com

Deprecated: Function set_magic_quotes_runtime() is deprecated in /home/sites/grandviewstudiocom/www/65f67d67a94ad980786580ae69e11c07/sape.php on line 324

Deprecated: Function set_magic_quotes_runtime() is deprecated in /home/sites/grandviewstudiocom/www/65f67d67a94ad980786580ae69e11c07/sape.php on line 330
Z058440144362 Z348613067571