PhpMyAdmin-nal importálás MySQL táblába CSV-ből
Egy Excelből konvertált CSV állományt szeretnék egy utf8_hungarian_ci kódolású MySQL-es táblába beimportálni PhpMyAdmin segítségével.
Az importálás menübe belépve kiválasztom a szövegfájlt és az utf8 karakterkészletet választva (itt nem lehet külön hungarian-t választani), majd az importálandó fájl formátumában a CSV választottam.
Az indításkor azonban a mezők értékeit addig emeli át amíg bele nem bukkan egy ékezetes karakterbe.
Néztem egy másik fórumon, és azt ajánlották egy másik topicba, hogy latin1-esre kell átteni a karakterkódolást. Kipróbáltam, akkor áteszi végig a mezők értékét (nem áll le az ékezeteseknél), de kérdőjeleket tesz be helyettük.
Tudja valaki a megoldást?
re: PhpMyAdmin-nal importálás MySQL táblába CSV-ből
Nézd meg a CSV file karakterkódolását, mert annak is UTF-8-nak kell lennie.
re: PhpMyAdmin-nal importálás MySQL táblába CSV-ből
Próbáltam simán MySQL konzolról, így:
Kód:
LOAD DATA INFILE "c:\\MySQL.csv" INTO TABLE tabla_nev FIELDS TERMINATED BY "|"
A pontos vessző azért nem jó, mert az egyik mezőben szintén előfordulhatnak (videó leírás).
Előtte áttettem UTF-8-ra, sőt még külön a Notepad++ programmal átalakítottam UTF-8 kódolás BOM nélküli formátumra.
De az ő és ű betűk helyett még mindig ? tett be.
re: PhpMyAdmin-nal importálás MySQL táblába CSV-ből
Latin1-ben nincsenek ékezetek. Latin2-vel próbáld, de ez az UTF-es dolog elég érdekes..
re: PhpMyAdmin-nal importálás MySQL táblába CSV-ből
Egy
Kód:
show variables like 'character_set%';
parancs kimenet konzolból hogy néz ki?
Az ő és ű helyett akkor lehet kérdőjel, ha latin1 van vhol, mert abban nincs ez a két karakter (azonos kódon "kalapos" ő és ű lenne). UTF-8 táblába latin1-et tenni egyébként nem szerencsés, mert ma már csúnya a kalapos ő és ű egy weblapon is.
re: PhpMyAdmin-nal importálás MySQL táblába CSV-ből
Nem biztos h segít, de:
SET NAMES utf8
...aztán import...
re: PhpMyAdmin-nal importálás MySQL táblába CSV-ből
Kipróbáltam, amit írtatok, hogy az importálás előtt kiadjam a SET NAMES UTF-8 parancsot és működik: a konzolon már nem kérdőjelet tesz ki az ő ű helyett, hanem mint a többi ékezetesnél is valamilyen krix-krax karaktert (de ez úgy tűnik normális, mert azokat normálisan jelenített meg a böngészőben).
Az SQL-ben azonban még mindig vannak gondok: ha rákeresek olyan szóra (videó kategóriák) amely tartalmaz ő ű betűt, akkor a mysql_num_rows 0 méretűt ad vissza. Notepad++ -ban írom a SELECT-et a mysql_query paramétereként. Ha a többi videó kategóriára keresek, amelyek pl. á vagy é betűket tartalmaznak, azokra rendesen visszaadja, hogy hány szerepel az adatbázisban. Érdekes, ha a konzolon pötyögöm be a SELECT-et, ott nem fogadja az ékezeteseket egyáltalán, csak ha ékezetek nélkül írom (például ha azt írom, hogy kategória, akkor Empty set, viszont ha azt kategoria akkor listázza az ide tartozó videókat).
re: PhpMyAdmin-nal importálás MySQL táblába CSV-ből
Szia!
Valószínűleg a hullámos, vagy kalapos ékezetekkel (esetleg unicode?) vannak tárolva (Õ,Ô,). Ez okozott már problémát nálam is.
re: PhpMyAdmin-nal importálás MySQL táblába CSV-ből
keresés előtt is használj
SET NAMES utf8
illetve utf8_encode($keresoszo);
re: PhpMyAdmin-nal importálás MySQL táblába CSV-ből
Ha így beírom:
Kód:
$keresoszo=utf8_encode('ékezetes_szöveg');
$eredmeny=mysql_query("SELECT sorszam,video,cim,kategoria FROM table WHERE kategoria=" . $keresoszo);
echo mysql_num_rows($eredmeny);
Akkor ezt írja:
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\wamp\www\adatbazis\kategoria.php on line 22