mysql_affected_rows
(PHP 4, PHP 5)
mysql_affected_rows - Повертає число порушених минулою операцією рядів
Увага
Цей модуль застарів, починаючи з версії PHP 5.5.0, і видалений у PHP 7.0.0. Використовуйте замість нього MySQLi або PDO_MySQLСмотрите также инструкциюMySQL: вибір API. Альтернативи для цієї функції:
Опис
mysql_affected_rows(resource $link_identifier = NULL): int
Повертає кількість рядів, які торкнулися останнім INSERT, UPDATE, REPLACE або DELETE запитом, пов'язаним з дескриптором link_identifier
Список параметрів
link_identifier
З'єднання MySQL. Якщо ідентифікатор з'єднання не вказано, буде використано останнє з'єднання, відкрите mysql_connect(). Якщо таке з'єднання не було знайдено, функція спробує створити таке, якби mysql_connect() було викликано без параметрів. Якщо з'єднання не було знайдено та не змогло бути створено, генерується помилка рівня E_WARNING
Значення, що повертаються
Повертає кількість змінених записів у разі успішного виконання, і -1 якщо останній запит не вдався.
Якщо останній запит був DELETE без вказівки WHERE і, відповідно, таблицю було очищено, функція поверне нуль у всіх версіях MySQL до 4.1.2.
При використанні UPDATE MySQL не оновить колонки, що вже містять нове значення. Внаслідок цього, функція mysql_affected_rows() не завжди повертає кількість рядів, що підійшли під умови, лише кількість рядів, оновлених запитом.
Запит REPLACE спочатку видаляє запис із зазначеним первинним ключем, а потім вставляє новий. Ця функція повертає кількість видалених записів разом із кількістю вставлених.
У разі використання запитів типу "INSERT ... ON DUPLICATE KEY UPDATE", значення, що повертається, буде дорівнює у випадку, якщо була зроблена вставка, або при обновлении существующего ряда.
Приклади
Приклад #1 Приклад використання mysql_affected_rows()****
Loading...
Висновок наведеного прикладу буде схожим на:
Удалено записей: 10
Удалено записей: 0
Приклад #2 Приклад використання mysql_affected_rows()** з транзакціями**
Loading...
Висновок наведеного прикладу буде схожим на:
Обновлено записей: 10
Примітки
Зауваження Транзакції
При использовании транзакцийmysql_affected_rows() потрібно викликати після запитів INSERT, UPDATE, DELETE, але з COMMIT.
Зауваження Запити SELECT
Щоб отримати кількість рядів, повернутих SELECT-запитом, використовуйте функцію mysql_num_rows()
Зауваження Каскадні зовнішні ключі
mysql_affected_rows() не підраховує ряди, неявно змінені обмеженнями ON DELETE CASCADE та/або ON UPDATE CASCADE.
Дивіться також
- mysql_num_rows() - Повертає кількість рядів результату запиту
- mysql_info() - Повертає інформацію про останній запит