gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 11:46:19 26 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/779986/

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