mysql查询的json_encode返回某些行的某些空列,但列不为null

Rel*_*ase 2 mysql null json

我正在创建一个小的php文件来获取我的android应用程序的mysql行.检索我使用的每一行:

    $q=mysql_query($sql, $this->conn) or die (mysql_error());
while($e=mysql_fetch_assoc($q)) {
      $output[]=$e;
    }
print(json_encode($output));
Run Code Online (Sandbox Code Playgroud)

但有时它会给我一个不一致的输出.

这是一个例子:行:

id = 1(正确) - name ="name1"(正确) - price = 200(正确) - price2 = null(正确) - area = null(NOT CORRECT)因为区域的值为"CentroCittà"..并且等......

我该如何解决这个问题?

编辑:价值是

[{ "ID": "84", "idutente1":NULL, "idutente2":NULL, "idutente3":NULL, "idutente4":NULL, "idutente5":NULL, "idagente":NULL, "annuncio": "0","archiviato":"0","dataarchiviazione":"2012-07-05 13:31:19","tipoimmobile":"Residenziale","metodo":"Vendita","area":null ,"presentazione":"1","主页":"1","mappa":"1","nome":"Piazza Umberto I","luogo":"Crotone","descrizione":"60 mq composto da due vani oltre servizi,centralissimo buono per ufficio.","descdettagliata":"L'appartamentoèdivisoin due vani con cucina e bagno.</ p>\r \nPosto nel pieno centro e vicinissimo al lungomare Regina Margherita. </ p>\r \n Ottimo condominio.Libero e disponibile da subito./ p>","vani":"2","prezzo":"87000","prezzo1":"0","prezzo2": "0","prezzo3":"0","prezzo4":"0","prezzo5":"0","metriquadri":"58","stato":"在buono stato","riscaldamento": "autonomo","classeenergetica":"Non dotato","piano":"Primo/secondo/terzo","indicazioni":"","mutuo":"No","banca":"","importo" : "", "finalita": "", "tipologia": "", "ammortamento": "", "介绍浏览": "20","timest amp":"2012-06-25 10:48:01","nomefile":"HPIM2268.jpg"}]

区域字段不为空,而是"CentroCittà".其余的都是正确的.我试图只显示带有mysql_fetch_assoc($ query)的"area"字段,它返回正确的结果:"CentroCittà".这个问题只适用于json_encode.

SQL Variabile是:

$sql = sprintf("SELECT i.*, f.nomefile FROM immobili i LEFT JOIN foto f on(i.id=f.idimmobile AND f.copertina=1) WHERE i.id=%s", $_GET['id']);
Run Code Online (Sandbox Code Playgroud)

这只是一个例子,如果我问其他行,area字段也正确返回json_encode,其他字段返回null.这可能是与字符串和文本格式相关的问题吗?

Rel*_*ase 5

问题解决了

$result = $mysql->query($sql);
while($row = mysql_fetch_assoc($result)) {
   $r[] = array_map('utf8_encode', $row);
}
echo json_encode($r);
Run Code Online (Sandbox Code Playgroud)

谢谢