在我的网站上,我正在使用从配置文件中读取的值初始化DB连接,如下所示:
$this->mysqli = new mysqli($databaseInfo->MySQL_Host, $databaseInfo->MySQL_User, $databaseInfo->MySQL_Pass, $databaseInfo->MySQL_Db);
(记录在案,正确地从文件中读取值,当一切正常时,数据库连接工作正常)
然后我问在创建MySQLi对象时是否发生了错误:
if (($this->mysqli!=null)&&($this->mysqli->errno == 0)) {
如果没有,那么我想设置一个错误变量,并在稍后的代码中处理它。。。我希望这张支票只有在没有问题的情况下才能通过。。。我认为"errno"变量提供了足够的检查。。。
但显然不是,因为不管有什么错误,我都会在配置文件中生成,代码仍然会跳到"一切都很好"分支。。。很明显,PHP会产生很多警告,最后它会因一些致命错误而崩溃,这些错误与数据库不能按预期工作有关
所以我的问题是——如何正确设置这个DB连接的初始检查来避免这种情况?
从PHP手册中,试试这个:
if (!$mysqli->error) {
printf("Errormessage: %s'n", $mysqli->error);
}
如果使用PHP OOP
if ($mysqli->connect_error) {
die('Connect Error: ' . $mysqli->connect_error);
}
?>
如果使用过程式PHP
if (!$link) {
die('Connect Error: ' . mysqli_connect_error());
}
?>