我有这个MySQL表:
TABLE `table1` (
`ID` int(11) NOT NULL,
`First` varchar(30) DEFAULT NULL,
`Second` varchar(30) DEFAULT NULL,
)
这个PHP代码用于查询表并将其内容编码为JSON对象:
<?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;";
但结果是一样的。有人能帮助我吗?谢谢!
答案 0 :(得分:1)
建议您使用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;