PHP7未捕获错误:在安装mysqlnd的情况下调用未定义的方法mysqli\u stmt::get\u result()
我在live Web服务器上收到此错误,但在localhost上测试时未收到此错误。因此,代码不太可能是罪魁祸首 我知道有解决这个问题的方法,但我想了解为什么我在安装了mysqlnd模块的php7.0.18中遇到这个问题 这是我的DBController类。调用query()函数时出错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
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)。他们把我转移到了一个新的服务器上。谢谢大家的帮助。错了吗?我们不知道,因为你没有分享你的代码。我已经用代码更新了问题。可能是重复的