Лучший способ найти последний вставленный идентификатор в mysql, используя php

Мне интересно, какое лучшее решение – получить последний вставленный идентификатор после запроса mysql?

Я нашел следующие решения:

<?php function get_current_insert_id($table) { $q = "SELECT LAST_INSERT_ID() FROM $table"; return mysql_num_rows(mysql_query($q)) + 1; } ?> 

или даже с использованием функции php mysql_insert_id , но, по-видимому, эта функция не будет работать хорошо с bigint (это то, что я использую для поля ID), и если есть много последовательных запросов sql, это может быть ненадежным.

Может ли кто-нибудь обеспечить надежное и быстрое решение для решения этой задачи?

Является ли SELECT LAST_INSERT_ID() надежным и безопасным?

Из MySQL Doc: Идентификатор, который был сгенерирован, поддерживается на сервере для каждого подключения. Это означает, что значение, возвращаемое функцией для данного клиента, является первым значением AUTO_INCREMENT, сгенерированным для самого последнего оператора, влияющим на столбец AUTO_INCREMENT этого клиента. Это значение не может повлиять на других клиентов, даже если они генерируют собственные значения AUTO_INCREMENT.

Примечание с форума: (…) Все ставки отключены, хотя, если по какой-то причине вы используете постоянные подключения, например, через mysql_pconnect () (…)

Если вы вставляете несколько строк с помощью одного оператора INSERT, LAST_INSERT_ID () возвращает значение, сгенерированное только для первой вставленной строки. Причина этого заключается в том, чтобы дать возможность легко воспроизвести тот же оператор INSERT против какого-либо другого сервера.