Avatar billede nemlig Professor
06. januar 2019 - 22:17 Der er 1 kommentar

PHP, MySQL og drilsk UTF-8

Hejsa.
Jeg har lavet lidt kode til at hente alt data fra tabel1 og derefter indsætter jeg dataene i tabel2. (tabel2 indeholder flere felter end tabel1 og felterne kommer også i forskellige rækkefølger. Derfor kan jeg ikke bare kopiere tabel1 til tabel2).

Til at indsætte benytter jeg MySQL class'en: https://github.com/joshcam/PHP-MySQLi-Database-Class
Med denne class er det nemt at indsætte data fra et array.

Men når jeg indsætter, så mister jeg en masse tegn. Det gælder felter, hvor der er danske tegn som fx. æ, ø , å. Alle tegn, efter de danske og incl. de danske, skæres væk. Og det sker ved indsættelsen.

Alt er sat op til UTF-8.(Begge tabeller og samtlige text-felter).
MySQLi classen er også sat til default UTF8. Det samme er php-filen med programkoden.

Nogen der har et bud på, hvor jeg skal søge efter fejlen.

//Hent alle tabel-data
$sql = "SELECT * FROM tabel_fra ";
$res = $db2->query($sql);
$values = $res->fetch_all(MYSQLI_ASSOC);
//$values indeholder korrekte felter med danske tegn

//Indsæt data i anden tabel. Her benyttes MySQLi classen
for($i = 0; $i < count($values); $i++)
{
    $db->insert ('tabel_til', $values[$i]) );
}


Jeg har normalt ikke udfordringer med at indsætte data med danske tegn ved hjælp af MySQLi classen.
Avatar billede nemlig Professor
06. januar 2019 - 22:24 #1
Sorry - jeg fandt løsningen selv. Havde ellers brugt 2 timer med at bøvle med koden og tabellerne. Og så handlede det bare om, at jeg skulle sætte:

mysqli_set_charset($db2,"utf8");
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester