我正在尝试运行一个使用mysqli库的PHP脚本,但是在我运行WLAMP PHP 5.14的机器上它在webhosting服务器上没有取得任何结果它运行良好。
你能告诉我这个问题是否与mysqli有关,是否有办法让它适用于我的情况?
我希望工作的界限如下:
$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";
}
}
正如我所说,它在支持PHP 5.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";
}
}
现在可以使用了。 THX!
答案 0 :(得分:1)
您的桌子在远程服务器中是空的,而在本地
中不是空的答案 1 :(得分: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";
}
}