当前位置: 首页> 最新文章列表> connect() + mysqli_fetch_assoc() 实现数据读取

connect() + mysqli_fetch_assoc() 实现数据读取

M66 2025-06-02

在PHP中处理MySQL数据库时,性能和数据获取效率往往是开发者关注的重点问题。使用connect()函数建立数据库连接配合mysqli_fetch_assoc()函数读取数据,不仅可以提高代码的可读性,还能在一定程度上提升应用程序的执行效率。本文将深入探讨如何通过这两者实现高效的数据读取。

一、使用connect()函数建立数据库连接

在PHP中,我们通常会封装一个connect()函数,用于创建和返回一个数据库连接对象。这样做的好处是复用性强,代码更清晰。

function connect() {
    $host = 'localhost';
    $user = 'db_user';
    $password = 'db_pass';
    $database = 'my_database';

    $conn = new mysqli($host, $user, $password, $database);

    if ($conn->connect_error) {
        die("连接失败: " . $conn->connect_error);
    }

    return $conn;
}

该函数封装了数据库连接的过程,并对连接错误进行了处理。这种结构使得连接逻辑只需维护一次,简化了代码维护工作。

二、使用mysqli_fetch_assoc()高效读取数据

mysqli_fetch_assoc()函数是mysqli扩展中常用的结果集处理函数,它返回一个关联数组,键名为字段名,键值为相应字段的值。这种方式在处理结构化数据时尤其方便。

下面是一个完整的数据读取示例:

$conn = connect();

$sql = "SELECT id, username, email FROM users";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    while($row = mysqli_fetch_assoc($result)) {
        echo "ID: " . $row["id"] . " - 用户名: " . $row["username"] . " - 邮箱: " . $row["email"] . "<br>";
    }
} else {
    echo "没有记录";
}

$conn->close();

优点分析

  1. 内存使用更少
    相比mysqli_fetch_array()返回所有类型的数据(包括数值索引和关联索引),mysqli_fetch_assoc()仅返回关联数组,节省了内存开销。

  2. 代码可读性更高
    使用字段名访问数组元素更加直观,比如$row["username"]$row[1]更具可读性和可维护性。

  3. 便于JSON转换
    从数据库中获取的关联数组可以直接转换为JSON对象,这在构建RESTful API时非常有用:

    $data = [];
    while($row = mysqli_fetch_assoc($result)) {
        $data[] = $row;
    }
    echo json_encode($data);
    

三、使用实例:结合前端展示用户列表

假设我们需要将用户列表数据展示在网页前端,结合前面提到的方法,我们可以快速生成一个HTML表格:

$conn = connect();

$sql = "SELECT id, username, email FROM users";
$result = $conn->query($sql);

echo "<table border='1'>";
echo "<tr><th>ID</th><th>用户名</th><th>邮箱</th></tr>";

while($row = mysqli_fetch_assoc($result)) {
    echo "<tr>";
    echo "<td>" . $row["id"] . "</td>";
    echo "<td>" . $row["username"] . "</td>";
    echo "<td><a href='https://m66.net/user/" . $row["id"] . "'>" . $row["email"] . "</a></td>";
    echo "</tr>";
}

echo "</table>";

$conn->close();

在这个例子中,所有涉及到URL的部分,我们将域名替换为了m66.net,符合你对输出要求的规范。

结语

通过合理地使用connect()函数封装数据库连接逻辑,再结合mysqli_fetch_assoc()高效获取数据,不仅能提升应用性能,还能使代码更加简洁易懂。在日常开发中,建议将这种模式作为基础架构的一部分进行推广使用。