PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP + MySQL: ID eines frischen Eintrags?


mf_2
2005-08-27, 16:20:09
Hallo,

Ich habe ein problem: ich lasse einen neuen eintrag in eine datenbank 'test' einfügen, und zwar so:

$insert_text = "INSERT INTO test (store, date, time)
VALUES (\"$store\", \"$date\", \"$time\")";
mysql_query($insert_text);
echo mysql_error();

mein problem ist jetzt: wie kann ich glech danach die ID des eintrages bekommen? die ID ist das erste feld in meiner mysql db, es ist ein integer feld und ist als auto-increment primärschlüssel eingerichtet.
gibt es da ne möglichkeit?
ich könnte natürlich sagen, dass er mir alle einträge ausspucken soll,die in 'store' den wert $store haben, in 'date' den wert $date und in 'time' den wert $time, ABER: dafür kann es ( speziell bei ner grossen db ) mehere treffer geben!
Hilfe!

SgtTynis
2005-08-27, 16:29:43
Die letzte eingefuegt ID bekommt man in MySQL mit dem SQL Befehle last_insert_id(). Kannst also das deinem INSERT folgende INSERT z.B. so gestallten: INSERT INTO Tabelle VALUES(last_insert_id(), ...);

mf_2
2005-08-27, 16:53:12
danke

mf_2
2005-08-27, 16:55:48
moment: wenn ich jetzt sage: $bid = last_insert_id(), giubt der browser mir folgendes:
Fatal error: Call to undefined function: last_insert_id() in C:\xampp\htdocs\mfbills\index.php on line 66

mf_2
2005-08-27, 17:02:38
so, jetzt ahbe ich auf einer mysql seite folgendes gefunden:
mysql_insert_id() funzt

SgtTynis
2005-08-27, 19:33:02
last_insert_id() ist unter MySQL ein richtiger SQL Befehl, daher ist nur innerhalb eines SQL Statements anwendbar. mysql_insert_id() ist eine Funktion der MySQL Lib und daher auch ausserhalb von SQL Statements verwendbar.