Avatar billede boris Mester
25. april 2024 - 14:05 Der er 2 løsninger

Danske karakterter i simpel insert

Det kan næsten ikke være mere enkelt, men danske karakterer går galt. Collation = latin1_danish_ci. På forhånd tak!
Karakterer står rigtigt på skærmen, læses altså rigtigt af en tekstfil, men kommer forkert ind i databasen.
Det er hos Simply

try {
  $conn = new PDO("mysql:host=$servername;dbname=XXX_dk_db2", $username, $password);
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION,);
  echo "Connected successfully";
} catch(PDOException $e) {
  echo "Connection failed: " . $e->getMessage();
}
 
  echo ("før");
$sqla = "INSERT INTO eu24(t0,t1) VALUES ('ibØsterbæ', 'sølveå')";
$conn->exec($sqla);
echo ("efter");
Avatar billede arne_v Ekspert
25. april 2024 - 15:37 #1
Så længe der er konsistens mellem:
* hvad PHP faktisk sender til databasen og hvad databasen forventer ved indsættelse
* hvad databasen faktisk sender til PHP og hvad PHP fortæller browseren at det er ved visning
så skal det virke uanset om det er ISO-8859-1 (Latin1) eller UTF-8.

Du kan angive charset i connection string:

$conn = new PDO("mysql:host=$servername;dbname=XXX_dk_db2;charset=utf8", $username, $password);

$conn = new PDO("mysql:host=$servername;dbname=XXX_dk_db2;charset=latin1", $username, $password);

Og en fornuftigt editor kan fortælle dig om din PHP fil er i UTF-8 eller ISO-8859-1.
Avatar billede boris Mester
29. april 2024 - 11:41 #2
Tak til arne_v

Jeg fik det til at fungere med mysqli og
$conn = mysqli_connect($servername, $username, $password, $dbname);
mysqli_set_charset($conn,"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
Computerworld tilbyder specialiserede kurser i database-management

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