2013-02-02 11 views
6

Supponiamo che nel mio sistema un utente U1 creare una nuova voce di database nella tabella A e lo uso lastInsertId funzione per ottenere l'ID (campo auto_increment) di tale ingresso, ma quasi allo stesso tempo (poco dopo) un altro utente U2 fa lo stesso.PHP DOP funzione lastInsertId e razza condizione

In questo caso, fa lastInsertId cambio di U1 l'ID della voce aggiunta dall'altro utente, dal momento che è il più recente?

Grazie.

+1

Rispondi qui valido per la tua domanda, http://stackoverflow.com/questions/10371306/best-way-to-find-the-last-inserted-id-in-mysql-using-php –

+1

La mia comprensione è che ogni utente sarà su una connessione diversa quindi non ci sono problemi. All'inizio dello script quando crei una connessione, lo stai essenzialmente creando per quella sola esecuzione del tuo codice. Un altro utente avrà una nuova connessione, a meno che tu non faccia un po 'di cose fantasiose per condividere la connessione. – mpen

+0

Bello, grazie. – Trino00

risposta

3

Credo che dovresti preoccuparti solo delle condizioni di gara nel caso in cui utilizzi una singola connessione per fili diversi. Se usi una connessione diversa per ogni richiesta, dovresti stare bene. Cassa http://dev.mysql.com/doc/refman/5.0/en/getting-unique-id.html per ulteriori dettagli.

+0

Fondamentalmente devi fare di tutto per riutilizzare la tua connessione attraverso i tuoi thread, quindi a meno che tu non abbia fatto qualcosa del genere, allora va bene. – Nelson