(PHP 4, PHP 5)
mysql_affected_rows — Ottiene il numero di righe coinvolte nelle precedenti operazioni MySQL
$
identificativo_connessione
] )
mysql_affected_rows() restituisce il numero
di righe coinvolte nell'ultima query INSERT, UPDATE o DELETE
associata a identificativo_connessione
. Se l'identificativo di
connessione non è specificato, viene considerata l'ultima connessione aperta con
mysql_connect().
Nota:
Se sono usate le transazioni, è necessario richiamare mysql_affected_rows() dopo le query INSERT, UPDATE, o DELETE e non dopo il commit.
Se l'ultima query era una query DELETE senza clausola WHERE, tuti i record saranno cancellati dalla tabella ma questa funzione restituirà zero.
Nota:
Usando UPDATE, MySQL non aggiornerà le colonne nelle quali il nuovo valore è uguale al vecchio valore. Questo crea la possibilità che mysql_affected_rows() può non uguagliare realmente il numero di righe corrispondenti ma solo il numero di righe effettivamente coinvolte dalla query.
mysql_affected_rows() non funziona con l'istruzione SELECT ma solo con le istruzioni che modificano i record. Per ricavare il numero di righe restituite da SELECT, usare mysql_num_rows().
Se l'ultima query fallisce, questa funzione restituisce -1.
Example #1 Query di eliminazione
<?php
/* connessione al database */
mysql_pconnect("localhost", "utente_mysql", "password_mysql") or
die("Connessione non riuscita: " . mysql_error());
/* questo dovrebbe restituire il numero corretto di record eliminati */
mysql_query("DELETE FROM mia_tabella WHERE id < 10");
printf ("Records eliminati: %d\n", mysql_affected_rows());
/* senza la clausola WHERE nell'istruzione DELETE, dovrebbe restituire 0 */
mysql_query("DELETE FROM mia_tabella");
printf ("Record eliminati: %d\n", mysql_affected_rows());
?>
L'esempio riportato sopra dovrebbe produrre il seguente output:
Records eliminati: 10 Records eliminati: 0
Example #2 Query di aggiornamento
<?php
/* connessione al to database */
mysql_pconnect("localhost", "utente_mysql", "password_mysql") or
die("Connessione non riuscita: " . mysql_error());
/* aggiornamento dei record */
mysql_query("UPDATE mia_tabella SET used=1 WHERE id < 10");
printf ("Record aggiornati: %d\n", mysql_affected_rows());
mysql_query("COMMIT");
?>
L'esempio riportato sopra dovrebbe produrre il seguente output:
Record aggiornati: 10
Vedere anche: mysql_num_rows(), mysql_info().