繁体   English   中英

PHP如何拆分for循环? 提高 for 循环的性能

[英]PHP how to split a for loop? Improve performance of a for loop

我想拆分 for 循环以提高 for 循环的性能,但即使经过一些研究,我也不知道到底什么是循环拆分。

例如,这个 for 循环将运行 100000 个帐户并将详细信息保存到数据库,但我只能获取大约 3xxxx 个帐户数据,然后系统将停止响应。 如何提高此 for 循环的性能以运行大量数据?

我的代码

for ($i = 0; $i <= 100000; $i++){
    $url="https://8iportal.com/api/v1/portfolios/$i";
    curl_setopt($curl,CURLOPT_URL,$url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

    $result = curl_exec($curl);
    if(curl_error($curl)){
        echo 'Error:' . curl_error($curl);
    }else{
        echo nl2br($result."\n");
    }

    $data = json_decode($result, true); 
    if(isset($data['portfolio_info'])){
            $id= $data['portfolio_info']['id'];
            $user_id = $data['portfolio_info']['user_id'];
            $name = $data['portfolio_info']['name'];  
            $sql="INSERT into portfolio(portfolio_id, user_id,name) values(?,?,?)";
            $query=$conn->prepare($sql);
            $query->bind_param("iis",$id,$user_id,$name);
            $query->execute();  
            echo nl2br("Account ID : $i , $name have been saved \n");
        }

我试过的

 $sql="INSERT into portfolio(portfolio_id, user_id,name) values(?,?,?),(?,?,?),(?,?,?)";
            $query=$conn->prepare($sql);
            $query->bind_param("iisiisiis",$id,$user_id,$name,$id,$user_id,$name,$id,$user_id,$name);

这会使插入语句一次插入 3 个帐户详细信息吗?

由于变量名称相同,它将同时进行 3 次插入并使用相同的数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM