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

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