2016-04-01 12 views
0

Veritabanına bir csv yüklemek için mysql yükleme verilerini inline kullanıyorum. Dizeler etrafında çift tırnak işareti eklemek varsayılan davranışı olduğunu biliyorum ama bunu kapatmak için bir seçenek olacağını umuyordum. Test ettim ki eğer bir dizede arabanın arasında boşluk yoksa. Ancak dize arabamsa, "arabam" olarak gösteriliyordu. Çok fazla şey denedim ama bu alıntılardan kurtulmak mümkün görünmüyor. Tüm sütunların etrafında çift tırnak ekledim ve Mysql ESCAPED BY kullandım ama bu işe yaramadı.MySql yükleme verileri satır içi dize etrafında çift tırnak işareti ekler

+0

Lütfen SQL sorgunuzu yazdınız. Onu kaydettiğinizde CSV'nizi değiştirmenizi öneririm, alanlar ayırıcı – Xenofexs

cevap

0

Ben excel kullanmak için tavsiye edilmez. Açık ofis Calc daha iyidir, çünkü daha fazla seçenekle CSV'yi kaydedebilir (ve UTF-8'de)

Yük verisi yüklemeden önce CSV'mi kaydettiğimde yapılandırmamıma bakın (İngilizce açmıyorum, sry).

enter image description here

Ve veritabanında CSV eklemek için benim kodu: CSV erişebilir ve istediğiniz ona nasıl kaydedemezsiniz, SQL seçeneğini kullanabilirsiniz

$dataload = 'LOAD DATA LOCAL INFILE "'.$nomfichier.'" 
         REPLACE 
         INTO TABLE '.$this->csvTable.' CHARACTER SET "utf8" 
         FIELDS TERMINATED BY "\t" 
         IGNORE 1 LINES 
        '; 

. Doc Ve özellikle şu satırlar:

[{FIELDS | COLUMNS} 
     [TERMINATED BY 'string'] 
     [[OPTIONALLY] ENCLOSED BY 'char'] 
     [ESCAPED BY 'char'] 
    ] 
    [LINES 
     [STARTING BY 'string'] 
     [TERMINATED BY 'string'] 
    ] 
+1

için farklı bir seçenek seçin Ne yazık ki bu benim için bu durumda işe yaramıyor. LibreOffice rotasını ve kendimi yarattığım metin dosyasını denedim. Verilerin daha önce içe aktarılan bir sürümü bu sorunla karşılaşmadığından, bu yeni bir sorundur. Sadece alanda çift tırnak karakteri olduğunda görünür. Şu anda onu nasıl kaldırabileceğimi düşünüyorum, ama bu zarif değil. – dengar81

İlgili konular