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

Usa PHP per scaricare i valori mysql nel file JSON

Indovina casuale:json_encode si aspetta dati codificati UTF-8 e mostrerà il comportamento che descrivi su qualsiasi input non UTF-8, non ASCII. È probabile che i dati che stai ricevendo dal database siano codificati in Latin-1.

O imposta la connessione al database su utf8 per ricevere i dati codificati UTF-8 direttamente dal database (vedi UTF-8 fino in fondo ), oppure usa (e odio dirlo, perché questa funzione viene abusata così spesso che non è nemmeno divertente, ma qui è applicata correttamente) utf8_encode su tutti i dati che ottieni dal database per convertirlo da Latin-1 a UTF-8.

Quindi o:

// 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);

...

oppure:

$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);

...