2014-09-24 139 views
1

起初我從MySQL工作臺這個簡單的查詢:查詢的特殊字符

UPDATE PRODUIT 
SET statut = "Expedié" 
WHERE num_ref like "14T500924001" 

,並將其保存爲準確領域statut相同的值。 後來我把這個查詢在我的PHP文件中像這樣:

$bdd->query('UPDATE PRODUIT SET statut = "Expedié" WHERE num_ref like "14T500924001"'); 

的差異及其對現場statut它沒有考慮在「E」,從「Expedié」 ......我怎麼能解決這個問題? 它顯示了我:「Expedié」

在我的html->頭,我把這個:<meta charset="utf-8">但沒有改變很多。

UPDATE1

我如何獲得$ BDD:

function ConnexionBDD(){ 
try{ 
    $bdd = new PDO('mysql:host=127.0.0.1:3306;dbname=NumeroSerie', 'root'); 
    $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
} 
catch (Exception $e){ 
    die('Erreur : '.$e->getMessage()); 
} 
catch (PDOException $pe) 
{ 
die ("I cannot connect to the database." . $pe->getMessage()); 
} 
return $bdd;  
}; 
+0

如何獲得'$ bdd'?問題似乎在於數據庫連接中設置了錯誤的編碼。 – andy 2014-09-24 10:33:46

+0

@andy:我更新了我的問題。 – 2014-09-24 10:37:01

+0

您是否嘗試過使用如下所示的html特殊字符:'&eacute;'來自:http://www.utexas.edu/learn/html/spchar.html – SuperDJ 2014-09-24 10:41:30

回答

2

要設置你的數據庫連接使用utf8編碼,使用

$bdd = new PDO('mysql:host=127.0.0.1:3306;dbname=NumeroSerie;charset=utf8', 'root'); 

另外,您需要確保您的php源文件也使用utf8編碼。

在您的html中指定字符編碼<meta charset="utf-8">不會更改數據庫連接的編碼。上述解決方案的替代方法是告訴瀏覽器您使用<meta charset="iso-8859-1">發送iso-8859-1編碼。

+0

感謝隊友的解釋。 – 2014-09-24 10:49:12

0

試試這個:

$bdd = new PDO('mysql:host=127.0.0.1:3306;dbname=NumeroSerie;charset=utf8', 'root');