php自定义类mysqli中的prepare语句出错
请记住我是新的php自定义类mysqli中的prepare语句出错,php,mysql,mysqli,prepared-statement,Php,Mysql,Mysqli,Prepared Statement,请记住我是新的OOP和mysqli这是我的数据库连接php自定义类 class mysqldbconnect { protected $mysqli; public function __constructor() { $this->mysqli = new mysqli('localhost','root','','todo'); } public function select_query() {
OOP
和mysqli
这是我的数据库连接php自定义类
class mysqldbconnect {
protected $mysqli;
public function __constructor() {
$this->mysqli = new mysqli('localhost','root','','todo');
}
public function select_query() {
$stmt = $this->mysqli->prepare("SELECT * FROM dos");
$stmt->execute();
$stmt->bind_result($id,$task,$sday,$lday,$des);
$stmt->store_result();
$count = $stmt->num_rows();
if ( $count > 0 )
{
while ( $stmt->fetch()) {
echo $task." ".$sday." ".$lday." ".$des;
}
} else {
echo "Nothing to do :) its great..";
}
}
}
在这条线上
$stmt = $this->mysqli->prepare("SELECT * FROM dos");
我发现以下错误
Fatal error: Call to a member function prepare() on a non-object
我在select\u query
函数中尝试了var\u dump
函数,以检查$this-.mysqli
及其返回的NULL,因此错误现在明显存在,我不知道如何删除此错误?。
请帮帮我,我知道这是个愚蠢的问题 我看到的这段代码的最大问题是没有构造函数 它应该是
public function\uuu construct(){
而不是\uu constructor
也就是说,您应该进行一些错误检查,以确保mysqli对象已成功创建。我看到的这段代码的最大问题是您没有构造函数 它应该是
public function\uuu construct(){
而不是\uu constructor
也就是说,您应该执行一些错误检查,以确保mysqli对象已成功创建。您要调用的代码是什么?$db=new mysqldbconnect();$db->select_query();@perry您要调用的代码是什么?$db=new mysqldbconnect();$db->select_query()@PerryVery在这里很常见,而且总是很难发现,也很难调试。同意。有另一双眼睛看它总是很好的:)另一只眼睛是当一个OP有
\uu构造时-,那一只总是需要我一分钟的时间来理解。谢谢@mitu16先生,这是我现在最大的错误,一切都在工作:)对于其他人来说,在corr之后把构造器连接到构造器现在一切都很好,在这里很常见,而且总是很难发现,也很难调试。同意。有另一双眼睛看着它总是很好:)另一个是当一个OP有\u构造器
--这总是需要我一分钟才能理解。谢谢长官@mituw16,这真是太棒了我没有错,现在所有的东西都在工作:)对其他人来说,在将构造函数改为构造之后,现在所有的东西都在完美地工作