使用 new mysqli() 连接数据库后,通过检查 $mysqli->connect_error 属性是否为空来判断连接是否成功。如果该属性为空字符串,说明连接建立成功;如果不为空,则包含具体的错误信息。

new mysqli() 构造函数抛出异常吗
默认情况下,new mysqli() 不会抛出异常,而是将错误信息存储在对象属性中。开发者必须显式调用 connect_error 或启用异常模式才能捕获错误。

<?php $host = 'localhost';
$user = 'root';
$pass = '';
$db = 'test_db';
$conn = new mysqli($host, $user, $pass, $db);
if ($conn->connect_error) {
die('Connection failed: ' . $conn->connect_error);
}
echo 'Connected successfully';
$conn->close();
?>
运行结果:若密码错误或数据库不存在,输出 Connection failed: ...;若正确,输出 Connected successfully。
如何启用异常模式进行连接判断
可以通过设置 mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT) 来启用异常模式。在此模式下,连接失败会直接抛出 mysqli_sql_exception,无需手动检查属性。
安装、修复、更新或打包一个基于 Python 和 PyMySQL 实现的 Windows `mysql` 命令。适用于用户希望在 PowerShell/CMD 中输入 `mysql` 时重定向到 Python 实现、需要交互式输入 MySQL 连接信息、需要同步到当前用户本地 bin 目录,或需要将该能力封装成可公开复用的 Codex skill。

<?php mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
try {
$conn = new mysqli('localhost', 'root', '', 'test_db');
echo 'Connected successfully';
} catch (mysqli_sql_exception $e) {
echo 'Connection failed: ' . $e->getMessage();
}
?>
运行结果:与上一节相同,但代码结构更简洁,利用 try-catch 块处理错误。
连接成功后如何验证数据库选择状态
连接成功后,可以通过 $conn->select_db($db) 返回的布尔值确认是否成功切换到指定数据库。虽然构造函数已尝试切换,但显式调用可确保状态一致。
<?php $conn = new mysqli('localhost', 'root', '', 'test_db');
if ($conn->connect_error) {
die('Connection failed: ' . $conn->connect_error);
}
// 显式选择数据库(通常由构造函数完成)
if (!$conn->select_db('test_db')) {
die('Database selection failed: ' . $conn->error);
}
echo 'Database selected successfully';
$conn->close();
?>
运行结果:若数据库存在且权限足够,输出 Database selected successfully;否则输出错误信息。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










