php - MySqli 多个查询如何更快地处理结果

标签 php mysql mysqli

我必须插入数千条记录。 我在一个循环中使用 msqli::multi_query() 并想要“multi_query” block 的 n 查询(其中“n”是一个参数)。 第一个 INSERT 正常,第二个出错,因为我必须像这样管理结果:

while($mysqli->more_results())
{
    $mysqli->next_result();

    if($res = $mysqli->store_result()) // added closing bracket
    {
        $res->free(); 
    }
}

问题是这个 chek 很慢。

问题是:我如何优化这个批量 INSERT 以更快地管理结果?

最佳答案

如果您要在一个表中插入,只需在 INSERT 中使用 batch mod。
示例:
INSERT INTO TABLE (field1,field2,field3) VALUES (value1,value2,value3),(value4,value5,value6)

在 php 中使用 forforeach 进行查询,然后只需使用 mysqli_query。根据您在评论部分提到的错误判断,您违反了 ket 限制,这意味着您试图两次插入相同的值。

如果你在不同的表中插入,你可以使用multi_query接口(interface)。 准备一个查询 Insert1;Insert2;
并像这样使用 multi_query

  $con->multi_query($query);
    while (mysqli_more_results($con)) {
        mysqli_use_result($con);
        mysqli_next_result($con);
    }

关于php - MySqli 多个查询如何更快地处理结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29946015/

相关文章:

php - MySQL 使用 mysqli_real_escape_string 转义单引号

php - 无法使用php mysqli连接到远程服务器上的MySQL数据库

PHP/MySQL/AJAX - 更新多个数据

php - 使用 PHP 从数据库中获取数据

php - MySQL TIMEstamp 到天、小时

mysql - 对两个表进行分组,然后附加结果并删除重复项

php - 脚本在复制数据库表时卡住 - Mysql - PHP

mysql - PHP MySQL,联合表

php - 计算地理邻近度的公式

php - 如何从 mysql 值/内容禁用 jQuery Datepicker