调用我的数据库类并运行查询函数时,我收到此错误。
这是我的班级:
class dbConnect {
public $mysqli = null;
public function __construct() {
$this->mysqli = new mysqli( "localhost", "root", "pass", "database" );
if ($this->mysqli->connect_errno)
{
echo "Error MySQLi: (" . $this->mysqli->connect_errno
. ") " . $this->mysqli->connect_error;
exit();
}
$this->mysqli->set_charset("utf8");
}
public function __destruct() {
$this->closeDB();
}
public function runQuery($qry) {
$result = $this->mysqli->query($qry);
return $result;
}
这是我的页面:
$db = new dbConnect();
$insert = "INSERT INTO `users` (`username`,`password`,`email`,`ip`,`date`) VALUES ('$username','$pw','$email','$ip','$time')";
$db->runQuery( $insert ) or die("Error MySQLi: (" . $db->mysqli->connect_errno . ") " . $db->mysqli->connect_error);
编辑:
我现在收到错误Dbr`0
答案 0 :(得分:1)
在骰子的最后一行,你不在对象中。
答案 1 :(得分:1)
改变这个:
$db->runQuery( $insert ) or die("Error MySQLi: (" . $this->mysqli->connect_errno . ") " . $this->mysqli->connect_error);
对此:
$db->runQuery( $insert ) or die("Error MySQLi: (" . $db->mysqli->connect_errno . ") " . $db->mysqli->connect_error);
但是,我建议您创建一个方法来获取错误,而不是直接访问数据库对象($db->mysqli
)。
答案 2 :(得分:0)
在您的or die
声明中,您忘记了$this
,请将其替换为$db
答案 3 :(得分:0)
我没有在你的类中看到你在__destruct()函数中调用它的任何closeDB函数,如下所示:$this->closeDB();
也可以在查询中用$this->mysqli->connect_errno
替换$db->mysqli->connect_errno
!