Problema adaugare Diacritice in baza de date MySQL

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
bin_gal
Mesaje:5

Problema adaugare Diacritice in baza de date MySQL

Buna ziua,
Incerc sa introduc un text in baza de date (PDO, mysql) cu diacritice si nu-mi iese, am acest cod:

Cod: Selectaţi tot

header('Content-Type: text/html; charset=utf-8');
$dbh = new PDO("mysql:host=$host; dbname=$dbname", $dbuser, $dbpass);
$dbh->exec("SET CHARACTER SET utf8"); 

if (isset($_POST['pr']) && $_POST['pr'] != ""){
  $pr = $_POST['pr'];
  $id = $_POST['id'];
//echo $pr; die();
 
  $sql = "UPDATE `prog` SET text = '$pr' WHERE id = '$id'";
  $dbh->query($sql);
}
 
Iar cand verific in baza de date, diacriticile imi apar cu "?" in afara de "â". Mentionez ca BD este "utf8_general_ci" si tabelul la fel.

MarPlo Mesaje:4343
Verifica daca textul primit prin POST e transmis de la pagina HTML si primit in PHP cu diacritice.
Cu: echo $pr;
Daca nu e cum trebuie, vezi ca in pagina html sa fie acest meta-tag:

Cod: Selectaţi tot

<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
Daca acel"echo" afiseaza cu diacritice, problema ar putea fi la serverul MYSQL (dar asta nu cunnosc), sau la transferul dintre PHP si MySQL.
Incearca adaugand aceasta linie de cod in fisierul ".htaccess":

Cod: Selectaţi tot

AddDefaultCharset UTF-8
Sau asta:

Cod: Selectaţi tot

AddDefaultCharset Off

bin_gal Mesaje:5
Acel "echo" afiseaza diacriticile corect. Cred ca problema este atunci cand datele se introduc in BD. Am adaugat si acele linii de cod in .htaccess si tot nimic.

Edit:
Sa rezolvat. Am creat din nou aceiasi baza de date si acum primeste si diacritice. Dar nu inteleg de ce prima nu primea? Avea tot "utf8_general_ci".

Subiecte similare