Ongelma. Pitäisi viedä excelistä talletettu csv phpMyAdminilla tietokantaan, paljon rivejä. Menee hyvin, kunnes vastaan tulee rivi jossa on ääkkösiä. Soraan tietokantaan kirjoittaen ja php:llä yksitellen vieden toimii OK. Tiedoston merkistöksi on kerrottu utf-8. Mistä voisi kiikastaa? Antaa virheen "Invalid column count in CSV input on line 97" ja rivillä on kenttään menossa sana, jossa on ääkkönen.
Voisitko laittaa näytille CSV-tiedoston ensimmäisen rivin ja ongelmarivin?
Missä tämä UTF-8 on määritelty? Tallennusvaiheessa vai latausvaiheessa vai molemmissa? CSV itsessään ei sisällä tietoa merkistöstä, joten tieto pitäisi jotenkin ilmoittaa sekä tallennuksen että latauksen yhteydessä. Jos rivin ainoa ”virhe” on ääkkönen, ehkä phpMyAdmin yrittää lukea tiedostoa väärällä merkistöllä.
Jos kerran PHP-skriptillä saat rivejä vietyä, voisit viedä koko CSV-tiedoston PHP:llä silmukassa. Onko jokin välttämätön syy käyttää phpMyAdminia?
Microsoft Office ja Open Office tekee erilaiset CSV-tiedostot, joten kokeile tallentaa CSV-tietdosto vaikka Open Officella. Siis ongelma voi olla vain siinä liittymättä mitenkään UTF-8-tallennukseen, että string-tietueessa ei ole ""-merkkejä vaan ilman.
Metabolix kirjoitti:
Jos kerran PHP-skriptillä saat rivejä vietyä, voisit viedä koko CSV-tiedoston PHP:llä silmukassa. Onko jokin välttämätön syy käyttää phpMyAdminia?
Mä olen kyllä aina tehnyt näin joten ehkä phpMyAdmin on väärä ohjelma ja tämä ylläoleva oikea ratkaisu.
Aihe on jo aika vanha, joten et voi enää vastata siihen.