【发布时间】:2016-08-26 16:02:14
【问题描述】:
我有这个 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;";
但结果是一样的。有人可以帮助我吗?谢谢!
【问题讨论】:
-
在 $stuff 数组中运行 var_dump,然后再将其转换为 json 并检查发生了什么
-
也可以用 mysql_fetch_array 代替 mysql_fetch_assoc,这样你也可以保留列名
-
在我搜索 SO 时,我的问题已被标记为重复,但我没有找到任何关于此问题的信息。 @Phiter Fernandes 感谢您的回复,我已经使用了 mysql_fetch_assoc,现在它可以正常工作了。我无法将您的评论标记为答案,因为我的问题已关闭,对不起。谢谢大佬!
-
是的,显然有人回答了。
-
你先回答了,贴出来,我会标记的!谢谢