Search code examples
phplogicif-statementmysql-insert-id

Question regarding mysql_insert_id() application in my code


I have a page in which there is an if...else loop for processing of input data, this page is reverted two times when submitted, that is when a button called "Continue" is clicked and and second time "Add to cart".... Now in this case when Button "Continue" is clicked then the if loop is executed in which data is inserted in the Database, and as the refreshes I get the display of all the input data and this time another button "Add to cart" is obtained.. when Add to cart is clicked the code included in the else condition/loop part is executed..

Now here my question is as if the data is initially inserted in Ifpart and then later else is executed, so can i use the function mysql_insert_id() in else part to fetch the data last inserted in the if part?

Below is the type of code I am talking about:

If(Button Continue is clicked)
{
  insert query for a product table......
}
else Button Add to Cart is Clicked
{
  mysql_insert_id(); to fetch last id inserted in the above above loop/condition.. 
}

So can get the last inserted id in else part?


Solution

  • If I understand your scenario, then no. mysql_insert_id (and its mySQL cousin LAST_INSERT_ID()) will return the last insert ID valid for the current connection only. That means that if you switch to the next page, a new connection will be established and insert_id() won't work.

    A workaround may be putting the insert ID into a session variable right after making the query - it will be available in the other pages then. (Just be careful when a user has multiple tabs/windows open and makes two bookings at once - make sure you use some kind of identifier for each booking process.)