2009-03-21 6 views
4

Wenn ich einen neuen Eintrag in meiner MySQL-Datenbank erstellen möchte, möchte ich, dass die Abfrage die ID der gerade erstellten Tabelle zurückgibt. Wenn es das nicht kann, gibt es einen anderen Weg, diese ID herauszufinden? Der Grund, warum ich das tun möchte, ist, dass ich eine neue Zeile mit der Zeile verbinden kann, die sie hervorgebracht hat (und es gibt keine Garantie, dass sie fortlaufend sind)Gibt es eine Möglichkeit, die ID einer Zeile, die gerade in MySQL erstellt wurde, mit PHP zurückzugeben?

+0

Werfen Sie einen Blick in das PHP-Handbuch: http://docs.php.net/manual/en/ref.mysql.php – Gumbo

Antwort

11

Sie meinen, letzte autoincrement id?

<?php 
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); 
if (!$link) { 
    die('Could not connect: ' . mysql_error()); 
} 
mysql_select_db('mydb'); 

mysql_query("INSERT INTO mytable (product) values ('kossu')"); 
printf("Last inserted record has id %d\n", mysql_insert_id()); 
?> 
2

Haben Sie die ID des Datensatzes bedeuten, haben Sie gerade in eine Tabelle eingefügt, wenn so sind Sie für mysql_insert_id suchen.

0

Sie haben LAST_INSERT_ID() in My SQL (@@ identity in MS SQL) und mysql_insert_id in PHP.

Persönlich versuche ich jedoch, automatische Inkremente/Identitätsspalten zu vermeiden und meine IDs auf andere Weise zu generieren. Unter anderem, weil sie das Einfügen in mehrere Tabellen schwieriger machen.

/B

1

Verwenden Sie die mysql_insert_id Funktion ... http://php.net/mysql_insert_id

Excuse die Unterstrichen 'Einfügen' in Kursivschrift Umwandlung ... folgen Sie dem Link, und Sie sollten in Ordnung sein.

Verwandte Themen