sql >> Databáze >  >> RDS >> Mysql

Použijte PHP k výpisu hodnot mysql do souboru JSON

Náhodný odhad:json_encode očekává data zakódovaná v UTF-8 a bude vykazovat chování, které popisujete na jakémkoli vstupu, který není UTF-8 a ASCII. Data, která získáváte z databáze, jsou pravděpodobně zakódována v Latin-1.

Buď nastavte připojení k databázi na utf8 přijímat data v kódování UTF-8 přímo z databáze (viz UTF-8 až do konce ), nebo použijte (a nerad to říkám, protože tato funkce je tak často zneužívána, že to ani není vtipné, ale je zde správně použita) utf8_encode na všech datech, která získáte z databáze, abyste je převedli z Latin-1 na UTF-8.

Takže buď:

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

...

nebo:

$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. Jak odstranit revize příspěvků pomocí WP-CLI

  2. Vypočítat max. součtu anotovaného pole nad seskupeným dotazem v Django ORM?

  3. Změna existujícího sloupce na vypočítaný sloupec na serveru SQL (příklad T-SQL)

  4. ORA-00911:neplatný znak