我有以下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,花精力学习PDO
或mysqli_
数据库扩展,这里有一些帮助来决定使用