Php 调用未定义的方法DB_Class::prepare()
我知道以前可能有人问过这个问题,但我在其他主题中找到的答案似乎对我没有帮助:/。我不确定当我按照答案做的时候我做错了什么,但这让我很烦 错误:在第15行调用未定义的方法DB_Class::prepare()。我放了一行注释来标记它 代码是荷兰语的,我希望这不是问题 Reg_Functies.php(或至少相关部分):Php 调用未定义的方法DB_Class::prepare(),php,oop,mysqli,Php,Oop,Mysqli,我知道以前可能有人问过这个问题,但我在其他主题中找到的答案似乎对我没有帮助:/。我不确定当我按照答案做的时候我做错了什么,但这让我很烦 错误:在第15行调用未定义的方法DB_Class::prepare()。我放了一行注释来标记它 代码是荷兰语的,我希望这不是问题 Reg_Functies.php(或至少相关部分): 这可能是我正在查看的非常简单的东西,但是非常感谢您的帮助。您的代码正在尝试调用DB\u Class::prepare(),因为$this->DB已分配新的DB\u Class()
这可能是我正在查看的非常简单的东西,但是非常感谢您的帮助。您的代码正在尝试调用DB\u Class::prepare()
,因为$this->DB
已分配新的DB\u Class()
首先,构造函数应该保留一个mysqli
连接对象的副本,因此添加一个字段
private $connection;
到DB_类
类,并更新构造函数,使其调用
$this->connection = $connection;
最后
然后,您需要定义一个prepare
方法,在DB\u Class()
中调用mysqli\u prepare($this->connection)
,或者调用$this->DB->connection->prepare()。如果选择最后一个选项,则需要将其设置为公共
字段
另一个更好的选择是避免创建这个冗余的DB\u类,而是使用PDO
。您的代码试图调用DB\u类::prepare()
,因为$this->DB
已经分配了新的DB\u类()
首先,构造函数应该保留一个mysqli
连接对象的副本,因此添加一个字段
private $connection;
到DB_类
类,并更新构造函数,使其调用
$this->connection = $connection;
最后
然后,您需要定义一个prepare
方法,在DB\u Class()
中调用mysqli\u prepare($this->connection)
,或者调用$this->DB->connection->prepare()。如果选择最后一个选项,则需要将其设置为公共
字段
另一个更好的选择是避免创建这个冗余的DB_类
,而是使用PDO
。您的DB_类
类没有构造函数之外的任何方法,也没有任何固有的东西。然而,您尝试在其上调用方法$this->db->..
您db_类
类没有构造函数之外的任何方法,并且它不从任何事物中继承。然而,您尝试在其上调用方法$this->db->..
$connection
是构造函数范围内的局部变量(因此立即被丢弃),没有公共属性,因此$this->db->connection
不是一个选项。虽然$connection
是构造函数范围内的一个局部变量(因此立即丢弃),但我同意您的PDO,它不是公共属性,因此$this->db->connection
不是一个选项。不过我同意你的看法