|
(PHP 3, PHP 4)
mysql_affected_rows - получает количество рядов, задействованных в предыдущей MySQL-операции.
Описание
int mysql_affected_rows ([resource link_identifier])
mysql_affected_rows() возвращает количество рядов, задействованных в последнем запросе INSERT, UPDATE
или DELETE, ассоциированном с идентификатором
link_identifier
. Если link identifier не специфицирован, принимается последняя ссылка, открытая функцией
mysql_connect()
.
Примечание:
если вы используете транзакции, необходимо вызывать mysql_affected_rows() после запроса INSERT,
UPDATE или DELETE, а не после подтверждения транзакции.
Если последним запросом был DELETE без оператора WHERE, все записи таблицы будут удалены, но функция возвратит нуль.
Примечание: при использовании UPDATE, MySQL не обновит столбцы, где новое значение -
такое же, как и старое. Это создаёт возможность того, что mysql_affected_rows() совпадёт не с количеством рядов, задействованных реально, а только с рядами,
непосредственно изменёнными запросом.
mysql_affected_rows() не работает с операторами SELECT; только с операторами, модифицирующими запись.
Для запрашивания количества рядов, возвращённых SELECT, используйте
mysql_num_rows()
.
Если последний запрос потерпел неудачу, эта функция возвратит -1.
Пример 1. Delete-Query
<?php
/* соединение с БД */
mysql_pconnect("localhost", "mysql_user", "mysql_password") or
die ("Could not connect");
/* это должно возвратить корректное количество удалённых записей */
mysql_query("DELETE FROM mytable WHERE id < 10");
printf ("Records deleted: %d\n", mysql_affected_rows());
/* без оператора where в операторе delete должно возвратить 0 */
mysql_query("DELETE FROM mytable");
printf ("Records deleted: %d\n", mysql_affected_rows());
?>
|
На выходе будет:
Records deleted: 10
Records deleted: 0
|
|
Пример 2. Update-Query
<?php
/* соединение с БД */
mysql_pconnect("localhost", "mysql_user", "mysql_password") or
die ("Could not connect");
/* обновить/Update записи */
mysql_query("UPDATE mytable SET used=1 WHERE id < 10");
printf ("Updated records: %d\n", mysql_affected_rows());
mysql_query("COMMIT");
?>
|
На выходе:
|
См. также
mysql_num_rows()
,
mysql_info()
.
|
|