从行转换为字符串(mysqli fetch_array)

时间:2015-12-08 22:58:48

标签: php json mysqli

我有一个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 
              ) 
      ) 

2 个答案:

答案 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 );

它按预期工作。