我正在尝试根据用户输入的名称从数据库接收数据,一切正常,我确实在屏幕上看到了值,并且没有错误,这是php代码:

 <?php
 $dbhost = "localhost";
 $username = "root";
 $password = "";
 mysql_connect($dbhost,$username,$password);
 @mysql_select_db("trynew") or die(mysql_error());
 $user ="mon";
 $query = "SELECT * FROM trynewtable where name = '$user' ";
 $all_result = array();
 $result = mysql_query($query);
 if($result==FALSE)
 {
  die(mysql_error());
 }
 while($row = mysql_fetch_array($result))
 {
 $all_result[] = $row;
}
header('Content-Type: application/json');
$jsondata = json_encode($all_result);echo $jsondata;
mysql_close();
?>


但是我在html div上看到的输出是:

[{"0":"1","id":"1","1":"mon","Name":"mon","2":"26","Age":"26","3":"F","Gender":"F"}]


存储在数据库中的实际数据是:
数据库中的实际数据

javascript - 为什么我的json_encode没有在PHP中提供适当的值-LMLPHP

请让我知道我在做什么错?

最佳答案

您正在使用mysql_fetch_array(),它将同时返回数据库中数据的数字键和关联数组。使用mysql_fetch_assoc()mysql_fetch_array()(将MYSQL_ASSOC作为第二个参数)仅获取关联数组。

while($row = mysql_fetch_assoc($result))


要么

while($row = mysql_fetch_array($result, MYSQL_ASSOC))


仅供参考,mysql_ API是deprecated,并且是removed in PHP 7

10-07 13:22
查看更多