Лучший способ найти последний вставленный идентификатор в 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;
}
?>

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

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

2 ответа

Решение

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

Другие вопросы по тегам