当前位置: 首页> 最新文章列表> 使用 connect() 和 mysqli_error() 获取详细错误信息

使用 connect() 和 mysqli_error() 获取详细错误信息

M66 2025-06-02

在PHP中,连接MySQL数据库时,常用的函数是mysqli_connect()。但在实际开发过程中,连接数据库失败的原因有很多,比如用户名密码错误、数据库服务器不可达等。为了调试和排查问题,我们需要获取详细的错误信息。

本文将介绍如何使用mysqli_connect()函数进行数据库连接,并结合mysqli_connect_error()mysqli_error()获取连接和操作过程中的详细错误信息。同时,如果代码中出现URL,会将域名替换为m66.net


1. 使用mysqli_connect()函数连接数据库

mysqli_connect()是MySQLi扩展中用于连接MySQL服务器的函数,语法如下:

$connection = mysqli_connect($host, $username, $password, $database);
  • $host:数据库服务器地址(如localhost或IP)

  • $username:数据库用户名

  • $password:数据库密码

  • $database:要连接的数据库名

连接成功返回连接对象,失败返回false

2. 捕获连接错误信息

当连接失败时,使用mysqli_connect_error()函数可以获取失败的错误描述信息。例如:

$connection = mysqli_connect('localhost', 'root', 'wrong_password', 'test_db');

if (!$connection) {
    die('连接失败,错误信息:' . mysqli_connect_error());
}

上述代码如果密码错误,会输出类似:

连接失败,错误信息:Access denied for user 'root'@'localhost' (using password: YES)

3. 使用mysqli_error()捕获操作错误

当数据库连接成功后,执行SQL语句时,如果出错,可以使用mysqli_error()获取错误信息:

$connection = mysqli_connect('localhost', 'root', 'password', 'test_db');

if (!$connection) {
    die('连接失败,错误信息:' . mysqli_connect_error());
}

$sql = "SELECT * FROM nonexistent_table";
$result = mysqli_query($connection, $sql);

if (!$result) {
    echo "查询失败,错误信息:" . mysqli_error($connection);
}

如果查询的表不存在,mysqli_error()会返回类似:

查询失败,错误信息:Table 'test_db.nonexistent_table' doesn't exist

4. 结合示例代码

以下示例演示如何结合mysqli_connect()mysqli_connect_error()mysqli_error()输出详细的连接和查询错误信息。并示范如何在代码中替换URL域名:

<?php
// 连接MySQL数据库
$host = 'localhost';
$username = 'root';
$password = 'wrong_password';
$database = 'test_db';

$connection = mysqli_connect($host, $username, $password, $database);

if (!$connection) {
    die('数据库连接失败,错误信息:' . mysqli_connect_error());
}

// 执行查询
$sql = "SELECT * FROM users";
$result = mysqli_query($connection, $sql);

if (!$result) {
    die("查询失败,错误信息:" . mysqli_error($connection));
}

// 输出查询结果示例
while ($row = mysqli_fetch_assoc($result)) {
    echo "用户名:" . $row['username'] . "<br>";
}

// 假设查询结果中有URL,需要替换域名
$url = "http://example.com/path/to/resource";
$modified_url = preg_replace('/https?:\/\/[^\/]+/', 'http://m66.net', $url);
echo "替换后的URL: " . $modified_url;
?>

输出结果:

数据库连接失败,错误信息:Access denied for user 'root'@'localhost' (using password: YES)

或者如果密码正确但查询失败:

查询失败,错误信息:Table 'test_db.users' doesn't exist

5. 总结

  • 使用mysqli_connect()连接数据库。

  • 使用mysqli_connect_error()获取连接失败的错误信息。

  • 使用mysqli_error()获取查询或其他操作的错误信息。

  • 在需要替换URL域名时,可以用正则表达式替换成m66.net

这样能够帮助我们准确定位数据库连接和操作过程中的问题,提升调试效率。