|
(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(). | |