我正在尝试从最后一个多插入查询中获取插入的数据,以便我可以验证写入的数据。 我使用pdo来执行查询。
$sql="insert into tableName (col1,col2) values (val1,val2),(val4,val5),(val7,val8) ON DUPLICATE KEY UPDATE Col1=VALUES(Col1),Col2=VALUES(Col2)";
$stmt = dbh->prepare($sql);
$stmt->execute();
然后我运行lastInsertId()
以获取autoIncrement列的最后一个ID。
$lastId=$dbh->lastInsertId();
和rowCount()函数获取插入的行数(不关心重复项)
$numberOfNewRows=$dbh->rowCount();
现在我想从前一个插入查询中获取数据
$limitRangeStart=$lastId-$numberOfNewRows;
$sql="select * from previusTable limit $limitRangeStart , $lastId ";
$stmt = dbh->prepare($sql);
$stmt->execute();
所以我的问题是,最后一个查询是否总是返回先前插入的数据,因为使用了多插入方法? 是否有可能在那时可能运行的另一个插入查询将“中断”上一个查询中的多插入行?