简体   繁体   中英

Is there a way to return the id of a row that was just created in MySQL with PHP?

When I create a new entry in my MySQL database, I'd like the query to return the id of the table that was just created. If it cannot do this, is there another way to find out the this id? The reason I want to do this is so I can link a new row to the row that spawned it (and there's no guarantee that they're consecutive)

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

Do you mean the ID of the record you have just inserted into a table, if so you are looking for mysql_insert_id .

Use the mysql_insert_id function... http://php.net/mysql_insert_id

Excuse the underscores converting the 'insert' into italics... follow the link and you should be fine.

You have LAST_INSERT_ID() in My SQL (@@IDENTITY in ms sql) and mysql_insert_id in php.

Personally though, I try to avoid auto increments / identity columns and generate my id's in other ways. Amongst other reasons, because they make inserts into multiple tables harder.

/B

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM