С помощью транзакции MySQLi
я иногда не мог получить mysqli::$insert_id
, потому что он вернул 0. Особенно если я использовал хранимые процедуры, которые выполняли INSERT
s. Таким образом, в транзакции есть другой способ:
<?php
function getInsertId(mysqli &$instance, $enforceQuery = false){
if(!$enforceQuery)return $instance->insert_id;
$result = $instance->query('SELECT LAST_INSERT_ID();');
if($instance->errno)return false;
list($buffer) = $result->fetch_row();
$result->free();
unset($result);
return $buffer;
}
?>