我有一个mysqli查询,我想转换为json。
尝试:
$myArray = array();
while ($row = mysqli_fetch_array($result)) {
$myArray[] = $row;
}
$ot = json_encode($myArray);
print_r($ot);
但没有结果(空白行)。如果我print_r $ myArray,则有值。
我可以在while循环上打印出正确的值,因此创建了另一个数组并尝试添加它们,但以下两种方法都没有工作:
$mA []=array (alumnoX => $al1, grupox=> "two");
$mA []=array (alumnoX => (string)$al1, grupox=> "two");
$mA []=array (alumnoX => strval($al1), grupox=> "two");
$mA []=array (alumnoX => $row['alumno'], grupox=> "two");
我该如何解决这个问题?
编辑 - ($ myArray的print_r)
Array (
[0] => Array (
[0] => Martín
[alumno] => Martín
[1] => 1A
[grupo] => 1A
[2] => Computación básica
[materia] => Computación básica
[3] => sala cómputo cs 01
[salon] => sala cómputo cs 01
)
[1] => Array (
[0] => Martín
[alumno] => Martín
[1] => 1A
[grupo] => 1A
[2] => Introducción a la música
[materia] => Introducción a la música
[3] => Auditorio [salon] => Auditorio
)
)
答案 0 :(得分:0)
使用mysqli_fetch_array()
时,将返回一个关联数组和一个数字索引数组,这将复制所有列并使您和json对象混淆。因此,请使用mysqli_fetch_array($result,MYSQLI_ASSOC)
或mysqli_fetch_assoc($result)
,以便只返回更有用的关联数组。
// assume you have code something like this
$result = mysql_query($con, $sql);
if ( ! $result ) {
echo mysqli_error($con);
exit;
}
$myArray = array();
//while ($row = mysqli_fetch_array($result)) {
while ($row = mysqli_fetch_assoc($result)) {
$myArray[] = $row;
}
$ot = json_encode($myArray);
//print_r($ot); print_r() works on arrays and $ot is now a string
echo "<pre>$ot</pre>";
答案 1 :(得分:0)
在替换之后,数据中没有一些常规字符:
json_encode($myArray );
为:
json_encode($myArray, JSON_UNESCAPED_UNICODE );
它按预期工作。