mysql_affected_rows
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
mysql_affected_rows
Референца за `function.mysql-affected-rows.php` со подобрена типографија и навигација.
mysql_affected_rows
(PHP 4, PHP 5)
mysql_affected_rows — Добиј број на погодени редови во претходната MySQL операција
Предупредување MySQLi or PDO_MySQL Овој екстензија беше депрецирана во PHP 5.5.0, и беше отстранета во PHP 7.0.0. Наместо тоа, екстензијата треба да се користи. Видете исто така MySQL: избирање на API водич. Алтернативи на оваа функција вклучуваат: PDO::quote()
= NULL
Добиј го бројот на погодени редови од последната 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 ако е извршено вметнување, или 2 за ажурирање на постоечки ред.
Примери
Пример #1 mysql_affected_rows() example
<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db('mydb');
/* this should return the correct numbers of deleted records */
mysql_query('DELETE FROM mytable WHERE id < 10');
printf("Records deleted: %d\n", mysql_affected_rows());
/* with a where clause that is never true, it should return 0 */
mysql_query('DELETE FROM mytable WHERE 0');
printf("Records deleted: %d\n", mysql_affected_rows());
?>Горниот пример ќе прикаже нешто слично на:
Records deleted: 10 Records deleted: 0
Пример #2 mysql_affected_rows() пример со користење трансакции
<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db('mydb');
/* Update records */
mysql_query("UPDATE mytable SET used=1 WHERE id < 10");
printf ("Updated records: %d\n", mysql_affected_rows());
mysql_query("COMMIT");
?>Горниот пример ќе прикаже нешто слично на:
Updated Records: 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() - Земи информации за најновото барање