我有一个小代码,可以将对我的mysql数据库的查询转换为json文件,但不返回任何内容。
我在很多地方都看到过这个例子,但是对我来说却不起作用
我当然检查过查询是否包含行
感谢您的帮助
<?php
if (!$enlace = mysql_connect('X.X.X.X', 'xxxx', 'xxxx') or !mysql_select_db('xxxx', $enlace)) {
echo 'No pudo conectarse a mysql';
exit;
}
$sql = 'SELECT * FROM `Tabla`';
$resultado = mysql_query($sql, $enlace);
$json = array();
while($row=mysql_fetch_assoc($resultado)){
$json[]=$row;
}
echo json_encode($json);
?>
答案 0 :(得分:1)
什么都没得到的原因是因为您覆盖了数组变量,
还请注意,由于mysqli
已过时,因此您需要使用mysql_
。
更改此行:
$resultado = mysql_query($sql, $enlace);
$json = array();
while($row=mysql_fetch_assoc($resultado)){
$json=$row;
}
收件人:
$resultado = mysqli_query($sql, $enlace);
$json = array();
while($row=mysqli_fetch_assoc($resultado)){
$json[]=$row;
}
答案 1 :(得分:0)
所有拳头都使用mysqli代替mysqli,自PHP 5.5.0起不推荐使用。 然后将行添加到数组中,而不是覆盖它。
$json[] = $row;
为了进行测试,请将此行添加到循环中
$json = [];
while($row = mysql_fetch_assoc($resultado)){
$json[] = $row;
print_r($row);
}
如果没有输出,则查询不会给出任何结果
答案 2 :(得分:0)
您可以确定要转换为数组。
while($row=mysql_fetch_assoc($resultado)){
$json[]=(array)$row;
}
是的,简单的调试很重要,只需使用var_dump()来确定问题
var_dump(['socket:', $resultado]); $i=0;
while($row=mysql_fetch_assoc($resultado)){
$json[]=(array)$row;
var_dump([$i++, $row]);
}
exit();
当然,您不应该使用不推荐使用的功能,但我认为这是一个学习环境或只是一个旧的工作系统