MySQL:: insert_id, возвращающий ненулевое значение для запроса SELECT
Я только что провел последние 4 часа, отслеживая ошибку в моем сценарии. Я продолжал получать следующую ошибку:
Call to a member function fetch_assoc on a non object
Это было брошено, когда я сделал что-то вроде:
$query = $database -> query("SELECT .....")
while($q = $query) {...}
мой database -> query
метод выглядит так: (где $database -> mysqli
это mysqli
объект)
function query($stmt) {
$query = $this -> mysqli -> query($stmt);
$id = $this -> mysqli -> insert_id;
return $id === 0 ? $query : $id;
}
Теперь это возвращает вставленный идентификатор автоинкремента для строки вставки, в противном случае результат запроса. Я только что узнал, что если я выполню запрос на вставку, а затем запрос на выборку, второй запрос вернет идентификатор вставки запроса на вставку, выполненного заранее. Это действительно предполагаемое поведение, или я что-то здесь упускаю?