我有这个MySQL表:
TABLE `table1` (
`ID` int(11) NOT NULL,
`First` varchar(30) DEFAULT NULL,
`Second` varchar(30) DEFAULT NULL,
)
以及用于查询表并将其内容编码为JSON对象的PHP代码:
<?php
/* Connection stuffs*/
$query = " SELECT * FROM table1;";
$results = mysql_query($query);
$stuff = array();
while($row = mysql_fetch_array($results))
array_push($stuff,$row);
$ja = json_encode($stuff);
echo $ja;
?>
现在,代码正在工作,但我得到一个奇怪的输出(我只发布一行问题的可读性,但其他是相同的):
{
"0": "1",
"ID": "1",
"1": "ivh",
"First": "ivh",
"2": "gyt",
"Second": "gyt"
}
我的问题是:为什么echo $ja;
不打印这个?
{
"ID": "1",
"First": "ivh",
"Second": "gyt"
}
"0","1","2"
从何而来?此外,"0"
的含量与ID
、1-First
和2-Second
相同。在MySQL列号和$ja
内容之间有一种关系。
我也试过使用这个查询:
$query = " SELECT ID,First,Second FROM table1;";
但是结果是一样的。有人能帮帮我吗?谢谢!
建议使用mysql_fetch_assoc()
或mysql_fetch_array($results, MSSQL_ASSOC)
。它将只返回列,而不是重复的
$query = " SELECT * FROM table1;";
$results = mysql_query($query);
$stuff = array();
while($row = mysql_fetch_array($results, MSSQL_ASSOC))
{
array_push($stuff,$row);
}
$ja = json_encode($stuff);
echo $ja;