Php Mysqli查询不获取任何记录
我正在尝试运行一个使用mysqli库的PHP脚本,但是它在webhosting服务器上没有得到任何结果,而在我运行WLAMP php5.14的机器上,它运行得很好 你能告诉我这个问题是否与mysqli有关,以及是否有办法使它适用于我的案例吗 我想让作品看起来像这样:Php Mysqli查询不获取任何记录,php,stored-procedures,mysqli,Php,Stored Procedures,Mysqli,我正在尝试运行一个使用mysqli库的PHP脚本,但是它在webhosting服务器上没有得到任何结果,而在我运行WLAMP php5.14的机器上,它运行得很好 你能告诉我这个问题是否与mysqli有关,以及是否有办法使它适用于我的案例吗 我想让作品看起来像这样: $sql = "call sp_give_me_data(null,null,null);"; if (!$mysqli->query($sql)) { die('Invalid query: ' . mysql_er
$sql = "call sp_give_me_data(null,null,null);";
if (!$mysqli->query($sql)) {
die('Invalid query: ' . mysql_error());
} else {
$result = $mysqli->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$datainfo[] = $row;
}
$output = json_encode($datainfo);
echo utf8_encode($output);
} else {
echo "0";
}
}
正如我所说,它在支持PHP5.3-5.5的主机上获取“0”条记录,并在我的机器上获取正确数量的记录。与远程数据库的连接(两种情况下都是相同的)似乎也成功了
谢谢你的洞察力
更新
我更改了代码,因此现在只发送一次查询:
mysqli_set_charset($mysqli,"utf8"); //utf-8 accents query
$result = $mysqli->query($sql);
if (!$result) {
die('Invalid query: ' . mysql_error());
} else {
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$datainfo[] = $row;
}
//utf-8 accents unescaping to be shown correctly
$output = json_encode($datainfo,JSON_UNESCAPED_UNICODE);
echo $output;
} else {
echo "0";
}
}
现在可以了。谢谢 您的表在远程服务器中是空的,而不是本地的根据@VolkerK的建议,现在可以工作了:
mysqli_set_charset($mysqli,"utf8"); //utf-8 accents query
$result = $mysqli->query($sql);
if (!$result) {
die('Invalid query: ' . mysql_error());
} else {
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$datainfo[] = $row;
}
//utf-8 accents unescaping to be shown correctly
$output = json_encode($datainfo,JSON_UNESCAPED_UNICODE);
echo $output;
} else {
echo "0";
}
}
为什么要发送两次查询?另外,如果出现问题,您使用的是
mysql\u error()
;您应该使用$mysqli->error
而不是think@VolkerK,你给了我一个线索,告诉我为什么它不起作用。我像编辑一样修改了我的代码,现在它起作用了。如果您能告诉我为什么在PHP5.3-5.5上原始查询不起作用,那就太好了?。把你的评论作为答案,我会给你正确的答案。发送两次查询是多余的,我相信在逐行测试代码之前扔掉这些东西是个好主意。您没有测试实际用于检索数据的(第二个)查询。所以可能它失败了-一些我不知道的存储过程…;-)总之@VolkerK,你最初的暗示帮助我解决了这个问题。如果你能把它作为答案贴出来,我就可以给你打分了。谢谢!