脚本宝典收集整理的这篇文章主要介绍了php – 有没有更好的方法返回多插入的最后插入ID?,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要为插入的每一行返回行ID,以便我可以使用它来安装相关数据.
我目前的解决方案是:
/* snipPEts From my class objects to illustrate my code */ // This foreach takes 24 seconds on just 95 rows foreach($list as $row) { $id = $this->importRows($sid,$table) array_push($id_list,$id); } /* PDO insertion */ PRotected function importRows($row) { $sql = "INSERT INTO my_table (name,colour) VALUES $row['name'],$row['colour']"; $result = $this->db->exec($sql); return $this->db->lastInsertId(); }
为了减少插入时间,我希望我可以在一个查询中插入多行
根据MySQL(向下滚动到红色lind和重要一词),它说:
他们建议的解决方案是创建另一个表并插入新的ID,然后我可以通过最后的select语句获取新的id.
有没有人研究类似的解决方案?关于如何使这个时间更有效的任何建议?
$query = "INSERT INTO my_table (name,colour) VALUES"; $i = 0; foreach( $rows as $row ) { if( $i ) $query .= ','; $query .= " ( $row[ 'name' ],IF( @id$i := LAST_INSERT_ID(),$row[ 'colour' ],$row[ 'colour' ] ) )"; ++$i; } $result = $this->db->exec( $query );
SELECT @id1,@id2,@id3,...
以上是脚本宝典为你收集整理的php – 有没有更好的方法返回多插入的最后插入ID?全部内容,希望文章能够帮你解决php – 有没有更好的方法返回多插入的最后插入ID?所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。