MySQL Funzioni
PHP Manual

mysql_affected_rows

(PHP 4, PHP 5)

mysql_affected_rowsOttiene il numero di righe coinvolte nelle precedenti operazioni MySQL

Descrizione

int mysql_affected_rows ([ resource $ 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().


MySQL Funzioni
PHP Manual