[英]Mysqli query fetching no records
我正在嘗試運行使用mysqli庫的PHP腳本,但是在運行WLAMP PHP 5.14的計算機中,它在web主機服務器上未獲取任何結果,但效果很好。
您能否告訴我問題是否與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";
}
}
現在可以使用。 謝謝!
您的表在遠程服務器中為空,在本地服務器中不為空
在@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";
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.