Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP7未捕获错误:在安装mysqlnd的情况下调用未定义的方法mysqli\u stmt::get\u result()_Php - Fatal编程技术网

PHP7未捕获错误:在安装mysqlnd的情况下调用未定义的方法mysqli\u stmt::get\u result()

PHP7未捕获错误:在安装mysqlnd的情况下调用未定义的方法mysqli\u stmt::get\u result(),php,Php,我在live Web服务器上收到此错误,但在localhost上测试时未收到此错误。因此,代码不太可能是罪魁祸首 我知道有解决这个问题的方法,但我想了解为什么我在安装了mysqlnd模块的php7.0.18中遇到这个问题 这是我的DBController类。调用query()函数时出错 class DBController { private $db; private $servername = "localhost"; private $username = "hidden"; priv

我在live Web服务器上收到此错误,但在localhost上测试时未收到此错误。因此,代码不太可能是罪魁祸首

我知道有解决这个问题的方法,但我想了解为什么我在安装了mysqlnd模块的php7.0.18中遇到这个问题

这是我的DBController类。调用query()函数时出错

class DBController
{ 
private $db;

private $servername = "localhost";
private $username = "hidden";
private $password = "hidden";
private $database = "hidden";

function __construct(){
    $this->db = new mysqli($this->servername, $this->username, $this->password);
    $this->db->select_db($this->database);
}

function db(){
    return $this->db;
}

private function query($sql){
    $sql = $this->db->prepare($sql);
    $sql->execute();
    return $sql->get_result();
}

function close(){
    $this->db->close();
}
}

php.net文档页面的第一段解释了所有内容:

它不是什么

尽管MySQL本机驱动程序是作为PHP扩展编写的,但需要注意的是,它并没有为PHP程序员提供新的API。MySQL数据库连接的程序员API由MySQL扩展、mysqli和PDO MySQL提供。这些扩展现在可以使用MySQL本机驱动程序的服务与MySQL服务器通信。因此,您不应该将MySQL本机驱动程序视为API

简单地说,MySQL本机驱动程序(mysqlnd)不足以在PHP代码中使用MySQL。您还需要一个提供API:or的扩展


您发布的代码显示您正在使用MySQLi与MySQL一起工作。它还需要安装/启用才能工作。

事实证明,我的主机提供商错误配置了PHP7(因此没有正确支持MySQLi)。他们把我转移到了一个新的服务器上。谢谢大家的帮助。

错了吗?我们不知道,因为你没有分享你的代码。我已经用代码更新了问题。可能是重复的