我最近一直在开发一个网站,但我遇到了一个错误。当我尝试print_r(error_get_last());
它输出一些关于mysql不再受支持的文本,并使用MySQLi。我全力以赴。当我编辑我的数据库类以支持MySQLi时,它每次尝试连接时都会退出。我在echo 'hi<br />';
函数之前和之后放置了mysqli
,并在其末尾放置了or trigger_error("Error: " . print_r(error_get_last()));
,但它的所有输出都是hi
,而没有其他内容。我的数据库是在phpMyAdmin中创建的,并具有所有正确的权限,但它无法连接。这是我的连接代码:
echo 'hi<br />';
$this->db = mysqli($host, $dbuser, $dbpass, $dbname) or trigger_error("Error: " . print_r(error_get_last()));
echo 'hi<br />';
$this->connect_start = microtime(true);
if ($this->db->connect_errno > 0) die ($this->debug(true));
它位于类的构造函数中,如下所示:
function db($host, $dbname, $dbpass, $dbuser)
就像这样调用:
$db = new db($host, $dbname, $dbpass, $dbuser);
答案 0 :(得分:1)
改变这个:
$this->db = mysqli()
到
$this->db = new mysqli()
mysqli不是一个函数,它是一个类。如果您有错误报告,请收到如下消息:
PHP致命错误:调用未定义的函数mysqli()
这就是为什么你的代码没有被执行的原因,执行就在那里停止了。
另请注意,new mysqli()
永远不会返回false
,因此您的or ...
部分将变得毫无用处。如果要检查连接错误,则必须在连接尝试后检查$this->db->connect_error
。