Mysqli查询获取没有记录

时间:2015-09-27 21:16:52

标签: php stored-procedures mysqli

我正在尝试运行一个使用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!

2 个答案:

答案 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";
    }       
}