Php 从行强制转换为字符串(mysqli fetch_数组)

Php 从行强制转换为字符串(mysqli fetch_数组),php,json,mysqli,Php,Json,Mysqli,我有一个mysqli查询,我想转换成json 尝试: $myArray = array(); while ($row = mysqli_fetch_array($result)) { $myArray[] = $row; } $ot = json_encode($myArray); print_r($ot); 但没有结果(空白行)。如果我打印\r$myArray,则会有一些值 我可以在while循环中打印出正确的值,因此创建了另一个数组并尝试添加它们,但以下两种方法均无效: $mA

我有一个mysqli查询,我想转换成json

尝试:

$myArray = array();
while ($row = mysqli_fetch_array($result)) { 
    $myArray[] = $row;
}
$ot = json_encode($myArray);
print_r($ot); 
但没有结果(空白行)。如果我打印\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)


当使用
mysqli\u fetch\u array()时,
将返回一个关联数组和一个数字索引数组,这将复制所有列并混淆您和json对象。因此,请使用
mysqli\u fetch\u数组($result,mysqli\u ASSOC)
mysqli\u fetch\u 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>";
//假设您有这样的代码
$result=mysql\u查询($con,$sql);
如果(!$result){
echo mysqli_错误($con);
出口
}
$myArray=array();
//而($row=mysqli_fetch_数组($result)){
而($row=mysqli_fetch_assoc($result)){
$myArray[]=$row;
}
$ot=json_编码($myArray);
//print\r($ot);print\r()在数组上工作,$ot现在是一个字符串
回声“$ot”;

替换后,数据中有一些非常规字符:

json_encode($myArray, JSON_UNESCAPED_UNICODE );
致:


它按预期工作。

帮我一个忙,把打印的实际结果放到你的问题中,而不是编辑过的版本。你可以发布
var\u dump($myArray);
var\u dump:array(2){[0]=>array(8){[0]=>string(7)“martin”[“alumno”]=>string(7)“martin”[1]=>string(2)“1A”[“grupo”=>string(2)“1A”[2]=>string(18)“Computación básica”[“matria”]=>string(18)“Computación básica”[3]=>string(18)“sala cómputo cs 01”[“salon”]=>string(18)“sala cómputo cs 01”}[1]=>array(8){[0]=>string(7)“martin n”[“alumno”=>string(7)“martin n”[1]=>string(2)“grupo”=>string(2)“grupo”=>string(2)”sica”>[“Materiala”]=>string(24)“Importacción a la música”[3]=>string(9)“Auditorio”[“salon”]=>string(9)“Auditorio”}谢谢,现在将使用var_导出表单。谢谢Riggs,不幸的是我只得到一个空行。连接工作正常,var_导出与以前的结果非常相似。嗯,看起来应该可以工作,您是否检查了
php错误日志
Woops,错过了
打印($ot)
…根据我修改后的代码,将其更改为简单的回显,因为
print\r
显示数组和
$ot
是字符串谢谢,不幸的是仍然是空行。错误日志中没有任何内容。您只显示了少量代码,这是将JSON字符串返回到AJAX调用还是仅在网页上显示它
json_encode($myArray );
json_encode($myArray, JSON_UNESCAPED_UNICODE );