folder Tahribat.com Forumları
linefolder Webmaster ve Yazılım Geliştiriciler
linefolder Php Üzerinden Db Ye CVS Dosyası İmport Ederken Aldığım Hata



Php Üzerinden Db Ye CVS Dosyası İmport Ederken Aldığım Hata

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    iLLuMiNaTi
    iLLuMiNaTi's avatar
    Kayıt Tarihi: 08/Mart/2007
    Erkek

    Db de tablom hazır ve boş.

    Yapmak isteidğim cvs dosyasını alıp dosyayı seçip db içerisine yüklemek.

    Yükle dediğim anda 500 internal server error 

    Request Timeout

    This request takes too long to process, it is timed out by the server. If it should not be timed out, please contact administrator of this web site to increase 'Connection Timeout'.

    Hatasını alıyorum. Önce CVS dosyaları çok büyük ( 65000 row ) bu yüzden mi diye düşünüp 5000 rowa böldüm 1000 rowa böldüm gene aynı hata..

    Php myadmin üzerinden 150000 rowluk CVS dosyalarını bile saniyesinde yükleyebiliyorken php üzerinden neden yükleyemiyorum, hatam nerede ?

    Kod ;

    <?php
    
                                    
                                    if (isset($_POST['xx_buton'])) {
                                        if (is_uploaded_file($_FILES['filename']['tmp_name'])) {
                                            echo "<h1>" . "Dosya " . $_FILES['filename']['name'] . " başarı ile yüklendi" . "</h1>";
                                            echo "<h2>İçerik Gösteriliyor:</h2>";
                                            readfile($_FILES['filename']['tmp_name']);
                                        }
    
                                        
                                        $handle = fopen($_FILES['filename']['tmp_name'], "r");
                                        $firstRow = true;
    
                                        while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
                                            if ($firstRow) {
    
                                                $firstRow = false;
    
                                            } else {
    
    
                                                $import2 = "INSERT INTO `navaids` SET `id`='{$data[0]}',`filename`='{$data[1]}',`ident`='{$data[2]}',`name`='{$data[3]}',`type`='{$data[4]}',`frequency_khz`='{$data[5]}',`latitude_deg`='{$data[6]}',`longitude_deg`='{$data[7]}',`elevation_ft`='{$data[8]}',`iso_country`='{$data[9]}',`dme_frequency_khz`='{$data[10]}',`dme_channel`='{$data[11]}',`dme_latitude_deg`='{$data[12]}',`dme_longitude_deg`='{$data[13]}',`dme_elevation_ft`='{$data[14]}',`slaved_variation_deg`='{$data[15]}',`magnetic_variation_deg`='{$data[16]}',`usageType`='{$data[17]}',`power`='{$data[18]}',`associated_xxx`='{$data[19]}'";
                                                mysql_query($import2) or die(mysql_error());
                                            }
                                        }
    
                                        fclose($handle);
    
                                        print "Yükleme Tamamlandı";
                                       
    
                                    } else {
    
                                        print "Bu bölümde sadece xxxx tablosunu yüklemeniz gerekmektedir!<br />\n";
    
                                        print "<form enctype='multipart/form-data' action='veritabaniguncelle.php' method='post'>";
    
                                        print "Yüklemek istediğiniz dosyanın adı:<br />\n";
    
                                        print "<input size='100' type='file' name='filename'><br />\n";
    
                                        print "<input type='submit' name='xx_buton' value='xxx Tablosunu Yükle'></form>";
    
                                    }
    
                                    ?>

     

    ....

    iLLuMiNaTi tarafından 26/Eyl/16 18:33 tarihinde düzenlenmiştir
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YeniHarman
    YeniHarman's avatar
    Kayıt Tarihi: 17/Haziran/2012
    Erkek

    Sayfanın üstüne set_time_limit(0); ifadesini koyabilir misiniz?


    Olaylara karışmayın!
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    blutarm
    blutarm's avatar
    Kayıt Tarihi: 09/Mart/2007
    Erkek

    Hocam tek seferlik bir yükleme mi olacak?
    Devamlı olacaksa bu kayıtlar güncellenecek mi yoksa yeni kayıtlar mı girecek?

     

     

     

    blutarm tarafından 27/Eyl/16 13:39 tarihinde düzenlenmiştir
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    iLLuMiNaTi
    iLLuMiNaTi's avatar
    Kayıt Tarihi: 08/Mart/2007
    Erkek
    YeniHarman bunu yazdı

    Sayfanın üstüne set_time_limit(0); ifadesini koyabilir misiniz?

    Hocam onu yapmıştım yemedi ne yazık ki :(

  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    iLLuMiNaTi
    iLLuMiNaTi's avatar
    Kayıt Tarihi: 08/Mart/2007
    Erkek
    blutarm bunu yazdı

    Hocam tek seferlik bir yükleme mi olacak?
    Devamlı olacaksa bu kayıtlar güncellenecek mi yoksa yeni kayıtlar mı girecek?

     

     

     

    Hocam her gece tablolar truncate olacak ve sistem cvs üzerinden yenilerini girecek boş tablolara

  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    pSkpt
    pSkpt's avatar
    Kayıt Tarihi: 10/Aralık/2010
    Erkek

    http://stackoverflow.com/a/11449458

    şurada loop olmadan direkt query ile import etmeyi göstermiş.


    İmza...
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    iLLuMiNaTi
    iLLuMiNaTi's avatar
    Kayıt Tarihi: 08/Mart/2007
    Erkek
    pSkpt bunu yazdı

    http://stackoverflow.com/a/11449458

    şurada loop olmadan direkt query ile import etmeyi göstermiş.

    Hocam bunuda inceleyecem gayette güzel duruyor fakat fopen read metodu ile tam oalyı çözdüm derken bu seferde tam %50 - %60 a gelince bağlantı sıfırlandı hatası veriyor şimdide buna takıldım.

     

    Sitede yada bağlantıda bir sorun yok ama import etmeyi denediğim an böyle bir sorunla karşılaşıyorum

  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    blutarm
    blutarm's avatar
    Kayıt Tarihi: 09/Mart/2007
    Erkek

    Hocam varsayalım sen db truncate ettin ve dosyayı upload ettin işlem sonrasında aşağıdaki kodu denermisin insert sıralaması db sıralamasına, fields terminated, enclosed kendine göre ayarlarsın.

     

    <?php

    $csvfiles= "upload/new.csv";

    if(file_exists($csvfiles)) {

    mysql_query("LOAD DATA LOCAL INFILE '".$location."'

    INTO TABLE `TABLOADI`

    CHARACTER SET UTF8

    FIELDS TERMINATED BY ';'

    ENCLOSED BY '\"'

    LINES TERMINATED BY '\r\n'

    IGNORE 1 LINES

    (`id`,`alan1`,`alan2`,`alan3`)");

     

    unlink($location);

    echo "Kayıtlar başarıyla yüklenmiştir";

    }

    else {

    echo "CSV dosyası yüklenmemiş";

    }

    ?>

    blutarm tarafından 28/Eyl/16 11:27 tarihinde düzenlenmiştir
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    iLLuMiNaTi
    iLLuMiNaTi's avatar
    Kayıt Tarihi: 08/Mart/2007
    Erkek

    Ve yine pSkpt ın el atması ile sorun çözülmüştür. Buradan tekrar teşekkür edeirm

Toplam Hit: 712 Toplam Mesaj: 9
mysql