我的php代码输出以“”开头的json;


My php code outputs json starting by "

我有以下php代码,我希望在开始时输出查询结果用[或{,但我得到了这个结果"''u0633''u064a''u0627''u0631''u0627''u06 2a"

<?php
 mysql_connect("localhost", "root", "password") 
or die(mysql_error());
mysql_select_db("db") or die(mysql_error());

$result = mysql_query(" select  part_name from  Services_parts where  part_id=  1 ") 
or die(mysql_error());  
while( $row = mysql_fetch_array( $result ) )
{
echo json_encode($row['part_name']) ;
} 
?>

如果您希望一个数组输出为JSON,那么将您的行添加到一个数组中,然后像下面的一样对数组进行jsonify

<?php
mysql_connect("localhost", "root", "password") or die(mysql_error());
mysql_select_db("db") or die(mysql_error());

$result = mysql_query(" select  part_name from  Services_parts where  part_id=  1 ") or die(mysql_error());  
$j_out = array();
while( $row = mysql_fetch_array( $result ) )
{
    $j_out[] = $row['part_name'];
} 
echo json_encode($j_out);
?>

如果你想要一个包含结果数组的对象,那么做这个

<?php
mysql_connect("localhost", "root", "password") or die(mysql_error());
mysql_select_db("db") or die(mysql_error());

$result = mysql_query(" select  part_name from  Services_parts where  part_id=  1 ") or die(mysql_error());  
$j_out = new stdClass();
while( $row = mysql_fetch_array( $result ) )
{
    $j_out->part_names[] = $row['part_name'];
} 
echo json_encode($j_out);
?>

实际上,由于您只从数据库中获得一行,因此可以这样做,从而消除不必要的循环,并使返回的对象更容易在javascript中处理。

<?php
mysql_connect("localhost", "root", "password") or die(mysql_error());
mysql_select_db("db") or die(mysql_error());

$result = mysql_query(" select  part_name from  Services_parts where  part_id=  1 ") or die(mysql_error());  
$row = mysql_fetch_array( $result );
$j_out = new stdClass();
$j_out->part_name = $row['part_name'];
echo json_encode($j_out);
?>

请不要使用mysql_数据库扩展,它已被弃用(在PHP7中永远消失)特别是如果你只是在学习PHP,花精力学习PDOmysqli_数据库扩展,这里有一些帮助来决定使用