Jump to content


Photo

mysql_insert_id()


  • Please log in to reply
6 replies to this topic

#1 Tandem

Tandem
  • Members
  • PipPipPip
  • Advanced Member
  • 251 posts

Posted 30 August 2006 - 02:34 AM

I want to be able to echo the number that the mysql_insert_id() function is producing. What's the best way of keeping the number that it produces, without having to pull it out of the database? (if this is possible)

Any help is appreciated.

#2 AndyB

AndyB
  • Staff Alumni
  • Advanced Member
  • 5,465 posts
  • LocationToronto

Posted 30 August 2006 - 02:36 AM

What do you mean by 'keeping the number'? How long for? And why?
Legend has it that reading the manual never killed anyone.
My site

#3 Tandem

Tandem
  • Members
  • PipPipPip
  • Advanced Member
  • 251 posts

Posted 30 August 2006 - 02:40 AM

Ok here is a theoretical example.

<?

$id = mysql_insert_id();
$query = mysql_query("INSERT INTO BLAH (ID) VALUES ('$id')");
echo "$id";


?>

If i do this it, the echoed $id will be 0. I want to be able to echo the actual number that was put into the database. Is there anyway of doing this without going into the database or would i have to?

#4 Guest_huey4657_*

Guest_huey4657_*
  • Guests

Posted 30 August 2006 - 02:42 AM

$id = mysql_insert_id();

needs to be after the query



#5 Tandem

Tandem
  • Members
  • PipPipPip
  • Advanced Member
  • 251 posts

Posted 30 August 2006 - 02:45 AM

Surely that would just produce another 0?

I ended up just doing it from the database, but i would still like to know just for knowledge purposes :P

#6 Guest_huey4657_*

Guest_huey4657_*
  • Guests

Posted 30 August 2006 - 02:50 AM

mysql_insert_id
(PHP 3, PHP 4 )

mysql_insert_id -- Get the ID generated from the previous INSERT operation

Description
int mysql_insert_id ( [resource link_identifier])

mysql_insert_id returns the ID generated for an AUTO_INCREMENT column by the previous INSERT query using the given link_identifier. If link_identifier isn't specified, the last opened link is assumed.

mysql_insert_id returns 0 if the previous query does not generate an AUTO_INCREMENT value. If you need to save the value for later, be sure to call mysql_insert_id() immediately after the query that generates the value.

Note: The value of the MySQL SQL function LAST_INSERT_ID() always contains the most recently generated AUTO_INCREMENT value, and is not reset between queries.

Warning


mysql_insert_id() converts the return type of the native MySQL C API function mysql_insert_id() to a type of long (named int in PHP). If your AUTO_INCREMENT column has a column type of BIGINT, the value returned by mysql_insert_id() will be incorrect. Instead, use the internal MySQL SQL function LAST_INSERT_ID() in an SQL query.



#7 Tandem

Tandem
  • Members
  • PipPipPip
  • Advanced Member
  • 251 posts

Posted 30 August 2006 - 02:59 AM

Thanks alot, thats what i wanted to know :)




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users