Pagina 1 din 1

Problema adaugare Diacritice in baza de date MySQL

Scris: Vin Oct 26, 2012
de bin_gal
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.

Problema adaugare Diacritice in baza de date MySQL

Scris: Vin Oct 26, 2012
de MarPlo
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

Problema adaugare Diacritice in baza de date MySQL

Scris: Vin Oct 26, 2012
de bin_gal
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".