Php 获取错误';调用未定义的方法语句::store_result()';

Php 获取错误';调用未定义的方法语句::store_result()';,php,mysql,pdo,Php,Mysql,Pdo,我有一个PHP代码,用于访问控制面板上用户拥有的所有服务器,如果它们有多个服务器,这显然需要返回多行,但我目前似乎无法返回多行 到目前为止,我把它作为我的代码 $nquery = "CALL `controlpanel`.`sp_getUsersServers`($userid);"; $servers=array(); try{ $serverrows = $db->prepare($nquery); $serverrows-&g

我有一个PHP代码,用于访问控制面板上用户拥有的所有服务器,如果它们有多个服务器,这显然需要返回多行,但我目前似乎无法返回多行

到目前为止,我把它作为我的代码

    $nquery = "CALL `controlpanel`.`sp_getUsersServers`($userid);"; 
    $servers=array();
    try{
        $serverrows = $db->prepare($nquery);
        $serverrows->execute();
        $serverrows->store_result();
        while ($row = mysqli_fetch_assoc($serverrows)) {
            print_r($row);
        }
    }
从MySQL服务器运行时,存储过程会正确返回,我已经设法以这种方式返回了第一行,但显然我需要的不仅仅是第一行。为什么我会遇到这样的错误

编辑:
我在安装了PHP的windows server 2012虚拟机上使用IIS。

没有这样的方法声明::存储结果。我应该尝试使用mysqli驱动程序连接到db

$db = new mysqli("example.com", "user", "password", "database");

回显$nquery并将其粘贴到MySQL服务器。可能是出了什么问题?我试过了,它是正确的,它呼应“CALL
controlpanel
sp_getusers服务器”
(1);“你是什么意思?我正在关注一些web资源,它们告诉我使用$db=newPDO(“mysql:host={$host};dbname={$dbname};charset=utf8”,$username,$password,$options);,“$db=newmysqli”(“example.com”、“user”、“password”、“database”)将如何使用影响我做什么?我必须改变我的代码吗?如果你使用PDO连接,你将在你的代码中使用PDO语句。这些语句没有存储结果方法。我建议,您应该使用mysqli驱动程序/扩展(您应该使用自己的连接数据,而不是上面的构造函数参数,即$db=newmysqli($host、$username、$password、$dbname);)我明白了,所以PDO没有存储结果,而mysqli()有,但是它们仍然使用相似的方法访问?好吧,现在我在C:\control\common.php中调用了未定义的方法mysqli::setAttribute(),我认为我必须彻底阅读文档才能将我的项目转换成这个。