note 46160 deleted from function.mysql-insert-id by cmb
| From: | cmb@php.net | Date: | Sun, 16 Feb 2020 13:29:53 +0000 |
| Subject: | note 46160 deleted from function.mysql-insert-id by cmb | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-214112@lists.php.net to get a copy of this message | ||
Note Submitter: Baak
----
I believe the "resource link" being referred to is not what is returned from mysql_query()
but the $link returned from mysql_connect(). mysql_insert_id() will just use the most recent
connection if there is no explicit $link being used.
So the above example in the manual page itself should behave the same with mysql_insert_id($link) at
the end instead of the mysql_insert_id() they used. If you had multiple connections, the $link might
come in handy.
Also in reading the mysql manual itself, there is some enlightening information on the fact that
this does appear to be totally safe to use because it is on a per-connection basis.
Here's the relevant quote from the manual on LAST_INSERT_ID() which is located here: http://dev.mysql.com/doc/mysql/en/Information_functions.html
"The last ID that was generated is maintained in the server on a per-connection basis. This
means the value the function returns to a given client is the most recent AUTO_INCREMENT value
generated by that client. The value cannot be affected by other clients, even if they generate
AUTO_INCREMENT values of their own. This behavior ensures that you can retrieve your own ID without
concern for the activity of other clients, and without the need for locks or transactions."
Sounds safe to me. I couldn't imagine this would be done any other way *but* on a
per-connection basis, otherwise chaos would ensue. The only way to test it would be to perform a
multi-thread type test. Perhaps someone is up for it and wants to post their results somewhere? :)