Моя голова близка к взрыву.
Я пытаюсь вставить много строк в базу данных, используя подготовленные операторы (это MODx cms).
Запрос выглядит так:
INSERT INTO {$table} (`fio`, `address`, `code`)
VALUES (?, ?, ?)
ON DUPLICATE KEY UPDATE
fio = VALUES(fio),
address = VALUES(address),
code = VALUES(code),
`eid` = LAST_INSERT_ID(eid);
Следующий шаг -
foreach ( $data as $k=>$v){
$q->execute(array($v['fio'], $v['address'], $v['code']));
$eid = $this->modx->lastInsertId('eid');
}
И у меня есть несколько строк в таблице, которые были заполнены ранее.Когда я пытаюсь выполнить скрипт, только первый $ eid является правильным и указывает на существующую строку.Каждое следующее значение $ eid больше, чем даже значение AUTO_INCREMENT для таблицы.
Перепробовал разные варианты, но $ eid верен только тогда, когда я удаляю подготовленный оператор и использую обычный запрос.
Помогите пожалуйста ...