2015-07-12 14 views
31

Guten Tag,Abrufen der zuletzt eingefügten ID mit Mysql

Ich bin bereit, den ID-Wert einer frisch eingefügten Zeile in Mysql abrufen.

Ich weiß, es ist mysqli_insert_id Funktion, aber:

  1. ich nicht die Tabelle
  2. Vielleicht angeben kann es wäre ein Risiko für die falsche ID abrufen, wenn eine Abfrage in der Zwischenzeit gemacht wird.
  3. Ich bin mit node.js MySQL

Ich will nicht das Risiko eingehen, die höchste ID abfragen, da viele Anfragen gibt, könnte es mir die falsche geben ...

(My id-Spalte ist auf Autoinkrement)

Antwort

66

https://github.com/mysqljs/mysql#getting-the-id-of-an-inserted-row beschreibt die Lösung sehr gut:

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

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

E dit: Rechtschreibung und Repo sind in Github verschoben, also habe ich den aktuellen Link gewechselt.

+2

ich eine Null für insertId die ganze Zeit. Irgendwelche Vorschläge? – Dinesh

+0

Wie ist Ihre Tabelle definiert? Haben Sie eine AUTO_INCREMENT ID-Spalte? – luksch

+0

ja. Ich habe es jetzt funktioniert. Vielen Dank! das hat funktioniert – Dinesh

-2

Ich denke, Sie missverstanden die Verwendung von mysqli_insert_id() Methode. Diese Methode muss sofort nach der Anweisung insert ausgeführt werden, um die zuletzt eingefügte ID zu erhalten. wenn Sie es meine MySQL tun direkt

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); 
    } 
}); 

Sie auch durch den Besuch dieser Link betrachten https://github.com/mysqljs/mysql#getting-the-id-of-an-inserted-row

Verwandte Themen