:该属性返回最后一次 MySQL 操作的错误代码。如果没有错误发生,它将返回 0。
mysqli::$error:该属性返回最后一次 MySQL 操作的错误描述信息。如果没有错误发生,它将返回空字符串。
这两个属性对于开发人员在调试数据库相关问题时非常有用,能够提供足够的错误信息来帮助找出问题所在。
数据库连接是与 MySQL 服务器交互的第一步。如果数据库连接失败,通常是由于服务器地址、用户名、密码或者数据库名错误引起的。使用 mysqli::$errno 和 mysqli::$error 可以帮助我们了解具体的错误信息。
下面是一个示例代码,演示如何使用这两个属性来捕获并打印连接错误:
<?php
// 设置数据库连接参数
$servername = "m66.net";
$username = "root";
$password = "password";
$dbname = "test_db";
// 创建 MySQLi 连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接是否成功
if ($conn->connect_error) {
echo "连接失败: " . $conn->connect_errno . " - " . $conn->connect_error;
exit();
}
echo "连接成功!";
$conn->close();
?>
在这个代码中,我们通过 connect_error 来检查是否存在连接问题,并通过 connect_errno 和 connect_error 打印出具体的错误信息。
如果数据库连接成功,但在执行 SQL 查询时发生错误,可以使用 mysqli::$errno 和 mysqli::$error 来捕获查询错误。以下是一个查询错误的示例:
<?php
// 设置数据库连接参数
$servername = "m66.net";
$username = "root";
$password = "password";
$dbname = "test_db";
// 创建 MySQLi 连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接是否成功
if ($conn->connect_error) {
echo "连接失败: " . $conn->connect_errno . " - " . $conn->connect_error;
exit();
}
// 执行查询
$sql = "SELECT * FROM non_existent_table"; // 假设这个表不存在
$result = $conn->query($sql);
// 检查查询是否成功
if (!$result) {
echo "查询失败: " . $conn->errno . " - " . $conn->error;
}
$conn->close();
?>
在这个例子中,我们故意执行了一个不存在的表的查询,导致查询失败。使用 errno 和 error 打印出具体的错误代码和错误描述。
在实际开发中,错误信息可能需要更详细的日志记录,以便后期分析和调试。通过将错误信息输出到文件或日志管理系统,可以更加方便地追踪问题。以下是一个将错误信息记录到文件的示例:
<?php
// 设置数据库连接参数
$servername = "m66.net";
$username = "root";
$password = "password";
$dbname = "test_db";
// 创建 MySQLi 连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接是否成功
if ($conn->connect_error) {
// 将错误信息写入日志文件
error_log("连接失败: " . $conn->connect_errno . " - " . $conn->connect_error, 3, "error_log.txt");
exit();
}
// 执行查询
$sql = "SELECT * FROM non_existent_table"; // 假设这个表不存在
$result = $conn->query($sql);
// 检查查询是否成功
if (!$result) {
// 将错误信息写入日志文件
error_log("查询失败: " . $conn->errno . " - " . $conn->error, 3, "error_log.txt");
}
$conn->close();
?>
在这个示例中,我们使用 error_log 函数将错误信息写入到 error_log.txt 文件中。这样就可以在后期查看这个日志文件,方便排查问题。
使用 mysqli::$errno 和 mysqli::$error 属性,可以帮助我们在 PHP 中捕获并打印详细的 MySQL 错误信息。这对于调试数据库连接问题和查询错误非常有帮助。通过合理地使用这些属性,我们能够快速定位问题并进行修复,提高开发效率。
希望本文能够帮助你理解如何在 MySQL 数据库操作中有效使用这两个属性进行错误调试。