Mysql içine büyük veri ithalat bir PHP komut dosyası çalışırken, ben aşağıdaki hatayla karşılaştı:
memory exhausted near ''$GPGGA','130735.000','60.15751','N','24.74303','E','1','05','1.6','8.7','M','35' at line 1
Ben şimdi, benim PHP INI dosyasında 256M bir bellek sınırı atanmış önce olması. Bu bellek şimdiye kadar benim sripts için yeterli olmuştur ve ben şimdiye kadar hiçbir sorunları yaşadım. 256MB bellek sınırı tutarken ben boyutu 1MB ve 2.84MB dosyaları ithal var. Ben 1MB hakkında bir metin dosyası koşucu bu hata oluştu.
Ben hata için refering bellek PHP bellek limiti olduğunu varsaydım. Ayarlanması için başka bellek limitleri olabilir mi? Ben bu sorunu çözme konusunda bazı önerilerde seviniriz. Çok teşekkürler.
Yeni düzenlemeler
...
...
if (is_array($inFile)) {
foreach($inFile as $inFileName) {
$newFilePath = $upload_directory."/".$inFileName;
if($inFileName != "")
$handle = fopen($newFilePath,"r");
$numlines =1;
$query = "INSERT INTO gga_raw_data(device_id, gga_date, nmea, gga_time, latitude, north, longitude, east, fixed_quality, no_of_satelites, hdop, altitude, meters, height_of_geoid, metres, check_sum, test_case_id) values";
while (($data = fgetcsv($handle)) !== FALSE)
{
$numlines++;
$myDay=substr($data[1], 0,2);
$myMonth=substr($data[1], 2,2);
$myYear=substr($data[1], 4,2);
$gga_date = convertToNiceDate($myDay, $myMonth, 2000+$myYear);
$longitude = convertToDegrees($data[6]);
$latitude = convertToDegrees($data[4]);
if (!isset($data[16])) {
$data[16] = '';
}
$query .="('$data[0]','$gga_date','$data[2]','$data[3]','$latitude','$data[5]','$longitude','$data[7]','$data[8]','$data[9]','$data[10]','$data[11]','$data[12]','$data[13]','$data[14]', '$data[15]', '$data[16])',";
}
$query = substr($query, 0,-1);
I do not wish to start a new question since it is still on this issue. I have resovled the " memory exhaustion" issue but now have a a mySQL query error has made my life quite miserable and I need help.
Bu bir metin dosyasından benim girdi verileri bir örnek:
1,070610,$GPGGA,080323.460,6013.45368,N,02445.28396,E,1,04,4.6,18.3,M,35.0,M,,*67
1,070610,$GPGGA,080327.000,6013.44424,N,02445.31214,E,1,05,1.9,30.8,M,35.0,M,,*66
Bu echo $ sorgu sonucu:
INSERT INTO gga_raw_data(device_id, gga_date, nmea, gga_time, latitude, north, longitude, east, fixed_quality, no_of_satelites, hdop, altitude, meters, height_of_geoid, metres,check_sum) values('1','2010,06,07','$GPGGA','080323.460','60.22423','N','24.75473','E','1','04','4.6','18.3','M','35.0','M','')('1','2010,06,07','$GPGGA','080327.000','60.22407','N','24.7552','E','1','05','1.9','30.8','M','35.0','M','')
)('1','2010,06,07','$GPGGA','053416.000','0','','0','','0','','','','','','','')('1','2010,06,07','$GPGGA','053431.000','0','','0','','0','','','','','','','')('1','2010,06,07','$GPGGA','062929.000','0','','0','','0','','','','','','','')('1','2010,06,07','$GPGGA','080250.000','0','','0','','0','','','','','','','')('1','2010,06,07','$GPGGA','080305.000','0','','0','','0','','','','','','','')('1','2010,06,07','$GPGGA','080305.000','0','','0','','0','','','','','','','')('1','2010,06,07','$GPGGA','080320.000','0','','0','','0','','','','','','','')
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '('1','2010,06,07','$GPGGA','080327.000','60.22407','N','24.7552','E','1','05','1' at line 1
Ben veri girişi gelen son değişken "* 67" sorgu tarafından çözümlenen olmak değil, fark gelmiş. Ben * ile başlar çünkü kabul edilmediğinden emin değilim.