sql >> Database teknologi >  >> RDS >> Mysql

Brug PHP til at dumpe mysql-værdier i JSON-filen

Tilfældigt gæt:json_encode forventer UTF-8-kodede data og vil udvise den adfærd, du beskriver, på enhver ikke-UTF-8, ikke-ASCII-input. De data, du får fra databasen, er sandsynligvis Latin-1-kodet.

Indstil enten din databaseforbindelse til utf8 at modtage UTF-8-kodede data direkte fra databasen (se UTF-8 hele vejen igennem ), eller brug (og jeg hader at sige dette, fordi denne funktion bliver så ofte misbrugt, at den ikke engang er sjov, men den er korrekt anvendt her) utf8_encode på alle data du får fra databasen for at konvertere den fra Latin-1 til UTF-8.

Så enten:

// set the connection charset
mysql_set_charset('utf8');

$result = mysql_query("SELECT post_status, post_title FROM wp_posts");

$data = array();
while ($row = mysql_fetch_assoc($result)) { 
    $data['posts'][] = $row;
} 

$json_string = json_encode($data);

...

eller:

$result = mysql_query("SELECT post_status, post_title FROM wp_posts");

$data = array();
while ($row = mysql_fetch_assoc($result)) { 
    $row = array_map('utf8_encode', $row);
    $data['posts'][] = $row;
} 

$json_string = json_encode($data);

...


  1. Bedste tilgange til at køre totaler – opdateret til SQL Server 2012

  2. Bedste praksis i skalering af databaser:Anden del

  3. Forøgelse af ydeevnen ved at bruge Læs Skriv-opdeling af databasetrafik med Moodle 3.9

  4. SQL indsæt i vælg fra flere felter