Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Dubbi su mysql_insert_id

    Ciao a tutti...
    vorrei togliermi un dubbio su mysql_insert_id...

    usato dopo un'insert, è garantita l'atomicità delle 2 operazioni? sono cioè sicuro che l'id che mi ritorna è quello dell'insert appena fatta o possono esistere situazioni estreme di concorrenza per cui, se la pagina viene lanciata in contemporanea da più utenti, non mi ritorna il mio id ma quello di un altro utente???

    :master:

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    mi sono letto un attimo i commenti su php.net riguardo questa funzione, e forse la soluzione migliore che ti da la massima sicurezza è questa:

    codice:
    Have had many people coming to me with issues regarding last_insert_id and mysql_insert_id() etc
    
    This is a very simple solution that caters for most. As you can see it gets the last auto inc from the field, in this case, ID.
    
    mysql_query("LOCK TABLES art WRITE");
    
    mysql_query("INSERT INTO table (....) VALUES (....)");
    
    $result = mysql_query("SELECT MAX(ID) AS LAST_ID FROM table");
    
    $result = mysql_fetch_array($result);
    
    mysql_query("UNLOCK TABLES");
    
    echo "Last ID#" . $result[LAST_ID];
    anche perchè leggevo che mysql_insert_id restituisce valori errati in caso di indice autoincrement se questo è di tipo BIGINT.

    ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    595
    E' garantita
    mysql_insert_id fornisce il valore della colonna autoincrement dovuto all'ultimo query effettuato dall'attuale connessione al database. Se altri query con altre connessioni effettuano altre insert, queste non influenzano la tua e puoi stare quindi tranquillo
    Se così non fosse non ci sarebbe più la possibilità di strutturare un database in modo certo

  4. #4
    Perfetto...
    Grazie mille a tutti e due..

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.