[英]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.