Верный id последней вставленной записи через lastInsertId при использовании bindValue

Всем доброго дня!

Столкнулся с задачей импорта из кастомного csv данных в свою таблицу, сделал через INSERT INTO… VALUES… ON DUPLICATE KEY UPDATE.
Работает, но долго, как по мне.

Для того, чтобы достать id последней вставленной или обновленной записи, пользуюсь $modx->lastInsertId($q), все показывает правильно: если запись была, то возвращает ее id, если она новая, то id вставленной записи.

Попробовал перейти на однократную подготовку запроса до перебора цикла, а дальше при переборе уже
$q->bindValue(1, $data[0]);
$q->bindValue(2, $data[1]);

$q->execute();

Все, на этом id последней вставленной записи ломается: возвращает id больше, чем последний AUTO_INCREMENT в таблице, при этом записи в таблице никакие не появляются.

Подскажите, кто знает — как ускорить вставку, при этом сохранив информацию о верном id?
Альберт
20 октября 2018, 13:30
modx.pro
639
0

Комментарии: 0

Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
0