2016-03-31 13 views
-2

ich habe Datenbank:Anzeige utf8_unicode_ci Daten mit PHP

es so führen:

frome diesen Code:

<?php 
 

 
    
 
    $dbhost = '?'; 
 
    $dbuser = '?'; 
 
    $dbpass = '?'; 
 

 

 
    try { 
 

 
     $dbh = new PDO("mysql:host=localhost;dbname=?", "?", "?"); \t \t 
 
     $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
 
     $result = $dbh->query("SELECT * FROM DATACC"); 
 
\t \t \t 
 
\t \t mysql_set_charset("UTF8"); 
 
\t \t header('Content-type: text/html; charset=utf-8'); 
 
\t \t 
 

 
\t \t } catch(PDOException $e) { 
 
     echo $e->getMessage(); 
 
    } 
 

 
\t echo "<body>"; 
 
\t 
 
    echo "<table class='bordered'>"; 
 
\t \t \t 
 
    foreach($result->fetchAll() as $row){ 
 
\t \t \t echo "<tbody>"; \t 
 
\t \t \t \t echo "<tr class='alt'>"; 
 
\t \t \t \t \t echo "<td width='20px'>" . $row["MaCC"] . "</td>"; 
 
\t \t \t \t \t echo "<td>" . $row["HoVaTen_VN"] . "</td>"; 
 
\t \t \t \t \t echo "<td>" . $row["NgaySinh"] . "</td>"; 
 
\t \t \t \t \t echo "<td>" . $row["NoiSinh"] . "</td>"; 
 
\t \t \t \t \t 
 
\t \t \t \t 
 
\t \t \t \t echo "</tr>"; 
 
\t \t \t echo "</tbody>"; \t 
 
    } 
 
    echo "</talbe>"; 
 
\t 
 
\t echo "</body>"; 
 
    $dbh = NULL; 
 

 
?>

können Sie mir helfen, diesen Code zu beheben! (Ich habe viele Möglichkeiten ausprobiert, um diesen Fehler zu beheben, also immer noch scheitern). Danke dafür!

+0

Vielleicht verbergen persönliche Informationen in Screenshots (wenn echte Namen). Aber wir sind hier um zu helfen, nur gibt es keine klare Frage, was willst du fragen? – Jer

+0

ok, ich reparierte! Danke @apokryfos so sehr! –

Antwort

0

Sie verwenden PDO, verwenden aber gleichzeitig mysql_set_charset, was kein PDO ist und keinen Einfluss auf Ihre PDO-Verbindung hat.

Verwenden Sie stattdessen eine Verbindungszeichenfolge wie PDO:

try { 

    $dbh = new PDO("mysql:host=localhost;dbname=?;charset=utf8", "?", "?"); 
    ... 

Als zweite Note:

Öffnen Sie eine MySQL-Terminal und verwenden Sie den folgenden Befehl ein:

SELECT T.table_name,CCSA.character_set_name 
FROM information_schema.`TABLES` T, information_schema.`COLLATION_CHARACTER_SET_APPLICABILITY` CCSA 
WHERE CCSA.collation_name = T.table_collation 
    AND T.table_schema = "<your dbname name>"; 

Achten Sie darauf, die Tische sind alle in UTF-8 codiert, so wie Sie sie benötigen.

0

Es gibt eine und nur eine geeignete Möglichkeit, den Zeichensatz mit PDO und das ist als Teil des DSN.

$dbh = new PDO("mysql:host=localhost;dbname=?;charset=utf8", "?", "?");