8.4.3.1 mysql_affected_rows()
my_ulonglong mysql_affected_rows(MYSQL *mysql)
8.4.3.2 Описание
Возвращает количество строк, измененных последней командой UPDATE
,
удаленных последней командой DELETE
или вставленных последней командой
INSERT
. Может быть вызвана немедленно после mysql_query()
для команд
UPDATE
, DELETE
или INSERT
. Для команд SELECT
mysql_affected_rows()
работает аналогично mysql_num_rows()
.
8.4.3.3 Возвращаемые значения
Целое число больше нуля равно количеству строк, подвергшихся воздействию
или извлеченных. Нуль указывает, что ни одна из записей не была обновлена
для команды UPDATE
, ни одна из строк не совпала с утверждением WHERE
в
данном запросе или что ни один запрос еще не был выполнен. Значение -1
показывает, что данный запрос возвратил ошибку или что для запроса SELECT
функция mysql_affected_rows()
была вызвана прежде вызова функции
mysql_store_result()
.
8.4.3.4 Ошибки
Нет.
8.4.3.5 Пример
mysql_query(&mysql,"UPDATE products SET cost=cost*1.25 WHERE group=10");
printf("%ld products updated",(long) mysql_affected_rows(&mysql));
Если указывается флаг CLIENT_FOUND_ROWS
при подключении к mysqld
, то
mysql_affected_rows()
возвратит количество строк, соответствующих
выражению WHERE
для команд UPDATE
.
Следует отметить, что при использовании команды REPLACE
функция
mysql_affected_rows()
возвратит значение 2, если новая строка заменила
старую. Это происходит по той причине, что в данном случае одна строка
была внесена и затем дублирующая была удалена.