Я использую mysqli_insert_id()
, чтобы получить последний идентификатор автоматического увеличения в таблице, но он всегда возвращает '0'.mysqli_insert_id on составной запрос
$sql = "INSERT INTO inventory (SELECT * FROM tmptable)";
$result = mysqli_query($link, $sql);
$newId = mysqli_insert_id($link); //$newID ends up being 0
id
столбец inventory
таблицы установлен автоматический инкремент и mysqli_insert_id()
отлично работает на других INSERT
запросов к inventory
, не вставляя результат SELECT
заявления. Является ли заявление SELECT
приоритетом в качестве последнего запроса по какой-либо причине, что приведет к возврату mysqli_insert_id()
?
Это был правильный ответ в моем случае. Я перестал стараться быть таким умным и получить результат инструкции SELECT заранее, сохранил его поля для переменных и сделал обычный INSERT. В этот момент mysqli_insert_id работал так, как ожидалось. –