来自php MySQL查询的JSON显示不存在的列
好的,我有一个非常简单的XAMPP设置,其中的数据库包含一个包含两行的表。我有一个php脚本,它随机获取其中一行,然后用JSON打印结果查询。不管出于什么原因,尽管JSON有“列”(我并不真的想称它们为列,因为JSON不能有列,但是,是的…),但这些列实际上并不存在于表中 我对XAMPP堆栈中的所有内容都很陌生,所以如果这是一个愚蠢的问题,我会提前道歉 这是我的桌子: 下面是生成的JSON:来自php MySQL查询的JSON显示不存在的列,php,mysql,json,xampp,Php,Mysql,Json,Xampp,好的,我有一个非常简单的XAMPP设置,其中的数据库包含一个包含两行的表。我有一个php脚本,它随机获取其中一行,然后用JSON打印结果查询。不管出于什么原因,尽管JSON有“列”(我并不真的想称它们为列,因为JSON不能有列,但是,是的…),但这些列实际上并不存在于表中 我对XAMPP堆栈中的所有内容都很陌生,所以如果这是一个愚蠢的问题,我会提前道歉 这是我的桌子: 下面是生成的JSON: {"0":"1","id":"0.9645465863538408","1":"Big Mac","n
{"0":"1","id":"0.9645465863538408","1":"Big Mac","name":"Big Mac","2":"A double layer of sear-sizzled 100% pure beef mingled with special sauce on a sesame seed bun and topped with melty American cheese, crisp lettuce, minced onions and tangy pickles.","description":"A double layer of sear-sizzled 100% pure beef mingled with special sauce on a sesame seed bun and topped with melty American cheese, crisp lettuce, minced onions and tangy pickles.","3":"http:\/\/www.mcdonalds.com\/content\/dam\/McDonalds\/item\/mcdonalds-Big-Mac.png","imgSrc":"http:\/\/www.mcdonalds.com\/content\/dam\/McDonalds\/item\/mcdonalds-Big-Mac.png","4":"2","upVotes":"2","5":"1","downVotes":"1","6":"0.9645465863538408"}
(“表中不存在0”、“1”等)
以下是我的php:
使用
mysql\u-fetch\u-assoc
而不是mysql\u-fetch\u-array
。默认情况下,mysql\u fetch\u array
返回一个数组,每个列都有命名索引和数字索引
或者您可以使用
mysql\u fetch\u数组($result,mysql\u ASSOC)
。默认的第二个参数是MYSQL\u BOTH
,这会导致您看到的结果。首先,您的意思是列
,而不是行
。第二,您是否已var\u转储了$row?这是一个带有索引的数组。第三,如果不指出mysql
已被弃用,不安全,应该用mysql
或PDO
@cale_b意思是mysqli
*或PDO
:)替换,那么对这个问题的评论就不完整了,你能解释一下你想用SQL查询实现什么吗?我打赌是你的加入导致了它的出现。在select语句中指定所需的列。仅此而已。没有意识到它会同时打印索引的名称和编号。它只打印数组中的任何内容。如果有两个索引,它将同时打印它们。
$password = "";
$usertable = "mcdonalds";
//Connect
mysql_connect($hostname, $username, $password) OR DIE ("Unable to
connect to $hostname . Please try again later.");
mysql_select_db($dbname);
//Fetch
$query = "SELECT * FROM `McDonalds`AS r1 JOIN(SELECT (RAND() *(SELECT MAX(id) FROM `McDonalds`)) AS id) AS r2 WHERE r1.id >= r2.id ORDER BY r1.id ASC LIMIT 1";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
//Print
echo json_encode($row);