mysql_insert_id() to get the unique id created after insert command of a record
On many occasions we want to generate a unique ID from the operation we do on a database. For example take the case of generating a trouble ticket number in case of a help desk. Here a ticket number is generated while the record is inserted to the table. This ticket number is nothing but the value of an auto incremented numeric field, which is unique also. Now in this case once the record is created we have to display or process (sending mail etc) along with the trouble ticket number (auto incremented unique ID) to the system. Here we will use mysql_insert_id() function to get the id generated after the insert command. We have to just echo or print the mysql_insert_id() to show the trouble ticket number. Here is an example of this. We will start with an insert command.
$query=mysql_query(“insert into help_desk(userid,type,domain,detail) values('$userid','$type','$domain','$detail')”);
This way we can display the generated ID of auto increment field of recent insert command.
/* Note that here auto increment field is not shown as it automatically add the next incremented value with every insert command
echo "Your trouble ticket number is = " mysql_insert_id();
However you may not like to show 1 or 2 as trouble ticket number so you can start the id at a higher value. You can manipulate and add strings ( text or today's date ) by various string function to this insert ID to make it a meaning full number.
If you are using PDO then you can get the unique auto incremented id by using lastInsertId() function. Here is the code.
$sql=$dbo->prepare("insert into help_desk(userid,type,domain,detail) values('$userid','$type','$domain','$detail')");
Usually as a practice we can add today's date to the trouble ticket number like this.
echo " Your trouble ticket number is = $ticket_id ";
Output of above code is here
$id=5; // as an example
echo "Your trouble ticket ID = $ticket_id";
Your trouble ticket ID = 12/03/16-5
|More on PHP MySQL functions|