Windows10にXAMPPを入れてlocalhostでMysqlのinsert,updateを繰り返し行うphpを実行しています。
php
1<?php 2set_time_limit(3600); 3$mysqli = new mysqli('localhost', 'XXXXXXXX', 'YYYYYYYY', 'XXXXXXXXX'); 4//接続状況の確認 5if (mysqli_connect_errno()) { 6 echo "データベース接続失敗" . PHP_EOL; 7 echo "errno: " . mysqli_connect_errno() . PHP_EOL; 8 echo "error: " . mysqli_connect_error() . PHP_EOL; 9 exit(); 10} else { 11 $options['ssl']['verify_peer']=false; 12 $options['ssl']['verify_peer_name']=false; 13 $getId = "SELECT id,name from info;"; 14 if ($result = $mysqli->query($getId)) { 15 foreach ($result as $row) { 16 $Id = $row["id"]; 17 $name = $row["name"]; 18 $jsonURL = "https://www.jsonURL.xxx.xx/id=".$Id; 19 $response = file_get_contents($jsonURL, false, stream_context_create($options)); 20 $pattern = '/"carrer":"(.*?)", "---":"/i'; 21 preg_match($pattern, $response, $match ); 22 $carrer = $match[1]; 23 $query = "INSERT INTO carrerinfo (id,name,carrer) values ('".$Id."','".$name."','".$carrer."') ON DUPLICATE KEY UPDATE name = '".$name."',carrer = '".$carrer."';"; 24 echo $query; 25 $mysqli->query($query); 26 } 27 } 28} 29?>
Windows10はcore i5-11400,DDR4-3200の8G×2です。
XAMPPは、XAMPP for Windows 8.1.5
PHPは、Version 8.1.5です。
しかし処理を始めて10分程度で
エラー コード: Out of Memory
が出て中断されてしまい困っています。
ChromeのものですがEdgeでも同じようなエラーが出ます。
.htaccessで
#メモリ使用量の制限 php_value memory_limit 4096M #POSTデータに許可される最大サイズ php_value post_max_size 500M #1つのファイルアップロードに許可される最大サイズ php_value upload_max_filesize 500M
php.iniで
max_execution_time = 0 memory_limit = 4096M
と設定し、
phpinfoでも
memory_limit 4096Mとなっています。
ループの中でprint "[メモリ使用量]:" . memory_get_usage() / (1024 * 1024) . "MB\n";として確認してみるのですが
[メモリ使用量]:1.5521087646484MB~[メモリ使用量]:3.5521087646484MB程度の物が表示されているのですがメモリーの設定がうまくいっていないのでしょうか?
改善点などご教示お願いいたします。



回答1件
あなたの回答
tips
プレビュー