gpt4 book ai didi

php - 如何使用 CodeIgniter 框架从数组中插入多行?

转载 作者:行者123 更新时间:2023-11-29 21:28:22 24 4
gpt4 key购买 nike

我正在使用插入命令通过 PHP 将大型数据集传递到 MySQL 表中,我想知道是否可以通过查询一次插入大约 1000 行,而不是将每个值附加在一英里的末尾 -长字符串,然后执行它。我正在使用 CodeIgniter 框架,因此我也可以使用它的功能。

最佳答案

在 MySQL 中,将多行组合成一个 INSERT 语句比每行组合一个 INSERT 语句要快得多。

也就是说,听起来您可能会遇到 PHP 中的字符串处理问题,这实际上是一个算法问题,而不是语言问题。基本上,在处理大字符串时,您希望最大限度地减少不必要的复制。首先,这意味着您要避免串联。构建大型字符串(例如一次插入数百行)的最快且最有效的内存效率方法是利用 implode() 函数和数组赋值。

$sql = array(); 
foreach( $data as $row ) {
$sql[] = '("'.mysql_real_escape_string($row['text']).'", '.$row['category_id'].')';
}
mysql_query('INSERT INTO table (text, category) VALUES '.implode(',', $sql));

这种方法的优点是,您不必复制和重新复制到目前为止用每个串联组装的 SQL 语句;相反,PHP 在 implode() 语句中执行此操作一次。这是一次巨大胜利。

如果您有很多列要放在一起,并且其中一个或多个列非常长,您还可以构建一个内部循环来执行相同的操作,并使用 implode() 来分配值子句到外部数组。

关于php - 如何使用 CodeIgniter 框架从数组中插入多行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35398821/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com