我正在尝试使用 PHP 访问 MySQL 数据库以填充 Javascript 数组,但该数组始终为空。之前,我有一个“www-data@localhost”访问错误,但无法弄清楚并回滚了代码。谁能分享任何见解?
JS:
var arrayPOIs = [];
function getPoints(){
$.get('getdata.php', function(data){
arrayPOIs = data;
});
}
获取数据.php:
$mysqli = new mysqli("localhost", "user", "pass", "test");
if (mysqli_connect_errno())
{
echo("Connect failed: ") . mysqli_connect_error();
exit();
}
$query = "SELECT * FROM points";
$result = mysqli_query($query) or die(mysqli_error());
$potential = mysqli_fetch_array($result);
echo json_encode($potential);
我试图将表的内容输出到一个数组。在我的浏览器控制台中,它总是显示为空。如:
arrayPOIs
""
我想我可能在数据库连接查询过程中遇到了一些问题。虽然,我对此很陌生,但我迷路了。有什么想法吗?
此外,如何以及在哪里可以实时检查 PHP 正在执行的操作,即错误消息?
编辑:
跟进评论:
添加
“json”
作为第三个参数后,arrayPOIs
var 变为(在 FF 的控制台中)Array [ ]
我的
getdata.php
页面在直接访问时显示为空(空白)
编辑 2:
在 Niranjan N Raju 的帮助下 (+1),它已部分修复。我的查询调用中的 PHP 语法错误。现在,我的对象格式不正确。我得到:
{"0":"1","id":"1","1":"poi_teste1","name":"poi_teste1","2":"41.1953","latitude":"41.1953","3":"-8.60134","longitude":"-8.60134"}
但我需要类似 (JSON) 的东西:
name: poi_teste1,
latitude: 3464357247,
longitude: 247245672
对于表中的每一行,它是这样的:
id | name | latitude | longitude
#1 | string | float | float
#2 | string | float | float
#3 | string | float | float
#4 | string | float | float
最佳答案
您在 mysqli_query()
中错过了连接对象
这样改
$result = mysqli_query($mysqli,$query) or die(mysqli_error());
^ ^
编辑
如果你得到超过 1 行,比如
array(
0 => id,name,lat and long,
1 => id,name,lat and long,
2 => id,name,lat and long,
);
对于上述结果,输出是正确的。要访问 ajax 中的值,请使用 for() 循环
另外,既然不需要索引,记得改成
$potential = mysqli_fetch_array($result);
到
$potential = mysqli_fetch_assoc($result);
更多信息在 fetch_assoc .
关于javascript - 使用 PHP 的 MySQL 查询未返回预期数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33219516/