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;
}

Теперь это возвращает вставленный идентификатор автоинкремента для строки вставки, в противном случае результат запроса. Я только что узнал, что если я выполню запрос на вставку, а затем запрос на выборку, второй запрос вернет идентификатор вставки запроса на вставку, выполненного заранее. Это действительно предполагаемое поведение, или я что-то здесь упускаю?

0 ответов

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