gpt4 book ai didi

php - 一次运行多个 mysql 命令而不是在代码点火器中顺序运行?

转载 作者:行者123 更新时间:2023-11-30 22:25:31 25 4
gpt4 key购买 nike

所以我正在处理现有的代码库,该函数从 csv 中获取每一行,格式化数据,然后将其插入到数据库中。对于 CSV 中的行,整个过程大约需要 20 分钟。但是,如果我保持一切不变并删除实际执行数据库条目的行

$this->db->replace('my_table', $myObject);

整个代码运行大约 2 秒。所以我想知道是否可以存储所有对象,然后一次将它们全部分配给数据库?我正在考虑执行 1 个 sql 调用而不是成千上万个。想法?

最佳答案

您是否研究过 insert_batch() ?参见 Documentation在这里。

您可以像这样解析您的 csv 并构建一个数组

$insert_array = array();
foreach($myCSV as $item)
{
$insert_array[] = array('db_field1' => $item->value1,
'db_field2' => $item->value2);
}

$this->db->insert_batch('mytable', $insert_array);

这将运行一个如下所示的查询:

INSERT INTO mytable (db_field1, db_field2) VALUES ('item1value1', 'item1value2'),  ('item2value1', 'item2value2'); 

关于php - 一次运行多个 mysql 命令而不是在代码点火器中顺序运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35346787/

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