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
cevap
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).
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']
]
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
Lütfen SQL sorgunuzu yazdınız. Onu kaydettiğinizde CSV'nizi değiştirmenizi öneririm, alanlar ayırıcı – Xenofexs