当我尝试使用MySQLi连接到数据库时,PHP退出

时间:2016-04-21 12:46:25

标签: php mysqli

我最近一直在开发一个网站,但我遇到了一个错误。当我尝试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);

1 个答案:

答案 0 :(得分:1)

改变这个:

$this->db = mysqli() 

$this->db = new mysqli()

mysqli不是一个函数,它是一个类。如果您有错误报告,请收到如下消息:

  

PHP致命错误:调用未定义的函数mysqli()

这就是为什么你的代码没有被执行的原因,执行就在那里停止了。

另请注意,new mysqli()永远不会返回false,因此您的or ...部分将变得毫无用处。如果要检查连接错误,则必须在连接尝试后检查$this->db->connect_error