Jaki jest `id` typu `AUTO_INCREMENT` dodanego recordu?

pawkow

Często chcielibyśmy poznać id (przy założeniu, że to ono jest indeksem i ma wartość Auto_increment) jakie będzie miał rekord po dodaniu go do tabeli.

<?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());

5 komentarzy

w pdo to jest
$db->lastInsertId();

zależy od tego co chcemy osiągnąć - ja potrzebowałem tego kodu, ięc rozwaliłem całego PHPMyAdmina, przeszukałem i mam :)

Myśle że w wielu przypadkach wystarczy mysql_insert_id() jednak czasem trzeba ten drugi kod. Zależy od tego jakie informacje przechowuje tabela (od założeń projektanta)

mysql_insert_id() pokaże id ostatniego JUŻ wstawionego elementu, a nie jeszcze NIE wstawionego.

a nie prościej w jednej linijce - mysql_insert_id()?