pdo prepared语句返回不正确的lastinsertid

kx1ctssn  于 2021-06-19  发布在  Mysql
关注(0)|答案(0)|浏览(227)

我的头快要爆炸了。
我正在尝试使用准备好的语句(modxcms)向数据库插入许多行。
查询如下所示:

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的每一个下一个值都大于表的自动增量值。
尝试了不同的变体,但只有在删除准备好的语句并使用常规查询时,$eid才是正确的。
救命啊。。。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题