ID: 6675 Updated by: sniper Reported By: [EMAIL PROTECTED] Old-Status: Open Status: Closed Bug Type: MySQL related Assigned To: Comments: Feedback by Sean R. Bright <[EMAIL PROTECTED]>: ---------------------------------------------- the documentation for mysql_insert_id() states that for very large values of the returned id (>32bits) this will return the wrong data and users should use LAST_INSERT_ID() to fetch that info from mysql instead. ---------------------------------------------- Previous Comments: --------------------------------------------------------------------------- [2000-09-12 21:45:15] [EMAIL PROTECTED] I researched this a little more and found this code snippit at line 1100: ZEND_FETCH_RESOURCE2(mysql, MYSQL *, mysql_link, id, "MySQL-Link", le_link, le_plink); /* conversion from int64 to long happing here */ return_value->value.lval = (long) mysql_insert_id(mysql); return_value->type = IS_LONG; Is there any way that this could be converted into a string before returning? (Forgive me if I'm over simplifying this...) --------------------------------------------------------------------------- [2000-09-12 04:54:10] [EMAIL PROTECTED] If you have a table with an auto_increment BIGINT field: CREATE TABLE bigtest ( id bigint(20) NOT NULL auto_increment, PRIMARY KEY (id) ); and the last ID you inserted was larger than 32 bits: i.e. 293949384923 If you insert a new record using: insert into bigtest values (null); mysql_insert_id() will return an incorrect number usually negative. It looks like it's storing that large (64bit) number in a 32bit field of some sort before returning it to the caller. --------------------------------------------------------------------------- Full Bug description available at: http://bugs.php.net/?id=6675 -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]