Верный 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?
Столкнулся с задачей импорта из кастомного 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?