Friday, 29 September 2017

PHP/MySQL insert row then get 'id'



The 'id' field of my table auto increases when I insert a row. I want to insert a row and then get that ID.



I would do it just as I said it, but is there a way I can do it without worrying about the time between inserting the row and getting the id?




I know I can query the database for the row that matches the information that was entered, but there is a high change there will be duplicates, with the only difference being the id.


Answer



$link = mysqli_connect('127.0.0.1', 'my_user', 'my_pass', 'my_db');
mysqli_query($link, "INSERT INTO mytable (1, 2, 3, 'blah')");
$id = mysqli_insert_id($link);


See mysqli_insert_id().




Whatever you do, don't insert and then do a "SELECT MAX(id) FROM mytable". Like you say, it's a race condition and there's no need. mysqli_insert_id() already has this functionality.


No comments:

Post a Comment

casting - Why wasn't Tobey Maguire in The Amazing Spider-Man? - Movies & TV

In the Spider-Man franchise, Tobey Maguire is an outstanding performer as a Spider-Man and also reprised his role in the sequels Spider-Man...