Php 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

我正在尝试运行一个使用mysqli库的PHP脚本,但是它在webhosting服务器上没有得到任何结果,而在我运行WLAMP php5.14的机器上,它运行得很好

你能告诉我这个问题是否与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";
   }

}
正如我所说,它在支持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,你最初的暗示帮助我解决了这个问题。如果你能把它作为答案贴出来,我就可以给你打分了。谢谢!