2015-07-12 26 views
31

Buona giornata,Recupera l'ultimo ID inserito con Mysql

Sono disposto a recuperare il valore ID di una riga appena inserita in Mysql.

So che c'è la funzione mysqli_insert_id, ma:

  1. non posso specificare la tabella
  2. Forse ci sarebbe un rischio di recuperare l'id sbagliato, se si effettua un'interrogazione nel frattempo.
  3. Sto usando node.js MySQL

io non voglio correre il rischio di interrogare il più alto id quanto ci sono un sacco di domande, mi potrebbe dare quella sbagliata ...

(la mia colonna id è in incremento automatico)

risposta

66

https://github.com/mysqljs/mysql#getting-the-id-of-an-inserted-row descrive la soluzione perfettamente:

connection.query('INSERT INTO posts SET ?', {title: 'test'}, function(err, result) { 
    if (err) throw err; 

    console.log(result.insertId); 
}); 

E dit: spelling e il repository spostato in github, quindi ho cambiato il link corrente.

+2

ottengo uno zero per insertId tutto il tempo. Eventuali suggerimenti? – Dinesh

+0

come viene definita la tabella? Hai una colonna ID AUTO_INCREMENT? – luksch

+0

si. ho funzionato ora. Grazie! questo ha funzionato – Dinesh

-2

Penso che abbiate frainteso l'uso del metodo mysqli_insert_id(). Questo metodo deve essere eseguito immediatamente dopo l'istruzione di inserimento per ottenere l'ultimo ID inserito. se lo si fa il mio MySQL direttamente

INSERT INTO(a,b)values(1,'test'); 
SELECT LAST_INSERT_ID(); -- this will display the last inserted id 
1
var table_data = {title: 'test'}; 

connection_db.query('INSERT INTO tablename SET ?', table_data , function(err, result, fields) { 
    if (err) { 
     // handle error 
    }else{ 
     // Your row is inserted you can view 
     console.log(result.insertId); 
    } 
}); 

È inoltre possibile visualizzare visitando questo link https://github.com/mysqljs/mysql#getting-the-id-of-an-inserted-row

Problemi correlati