Jump to content

[SOLVED] How to Identify last record INSERTED into mySQL..


A JM

Recommended Posts

I have an auto incrementing (ID) field in my database for invoice numbers.

 

Since the 'ID' field doesn't increment until the record is submitted how do I make sure that I have the correct 'ID' for the record I just submitted?

 

If more than one user is submitting an entry this could cause a problem with getting the wrong 'ID' if something sneaks in before I can query the table for the 'ID'

 

How do you guys handle this situation?

 

A JM,

Link to comment
Share on other sites

So what should the process be?

 

Run the INSERT query and then run a query to get the last invoice submitted (SELECT ID FROM claimcue ORDER BY ID DESC LIMIT 1) and then pass that to the Invoice page?

 

A JM,

 

 

Link to comment
Share on other sites

Read the link KingPhilip posted above. That function returns the last insert id for the insert query that was just executed by your script. The value is kept per mysql client connection and is 100% accurate no matter how many insert queries are executed.

Link to comment
Share on other sites

mysql_insert_id() :)

 

And unless you're getting a lot of calls per second, I wouldn't worry too much about it.

 

Sorry I missed the link...

 

I must be thinking about this in correctly then.

 

From my form submitting the information

//set session variable for last invoice generated in the system

session_register ("last_invoice");

$last_invoice = mysql_insert_id();

 

then on my Invoice:

 

<?php echo $_SESSION['last_invoice']; ?>

 

It generated an invoice number butit was incorrect, maybe because of the session itself, not sure here..

 

A JM,

Link to comment
Share on other sites

Make sure to have session_start(); at the top of both scripts.

 

Then, setting the session:

$_SESSION['last_invoice'] = mysql_insert_id();

 

Affirmative on the session_start()..

 

I get '0' now as opposed to '50' which I had previously.. does it matter where $_SESSION['last_invoice'] = mysql_insert_id(); is located in the script?

 

 

Link to comment
Share on other sites

That worked but creates a slight problem... I need the 'ID' used in the query for building a file name... any thoughts on how to accomplish that?

 

Will the mysql_insert_id() function work from a select query as well?

 

A JM,

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.