当前位置:首页 > 问答 > 正文

用PHP怎么连数据库然后把信息显示出来,简单又实用的办法分享

要解决这个问题,最简单的办法就是使用 PHP 原生的 MySQLi 扩展,特别是面向对象的方式,因为它写起来清晰,也容易理解,下面我就一步一步告诉你该怎么做,保证没有那些让人头疼的专业词儿。

你得先有个数据库和一张表,这个我们假设你已经用 phpMyAdmin 或者其他工具建好了,你有一个叫“users”的表,里面有 id、name 和 email 这几个字段。

第一步,连接数据库,这就像你要去朋友家做客,得先知道他家地址和门牌号,还得有钥匙,在 PHP 里,连接数据库也需要这几样东西:服务器地址(通常是 localhost)、用户名、密码和数据库名,参考 W3School 和 PHP 官方手册的常见写法,代码是这样的:

<?php
$servername = "localhost"; // 你的数据库服务器地址
$username = "root"; // 你的数据库用户名
$password = ""; // 你的数据库密码,本地测试可能为空
$dbname = "my_database"; // 你的数据库名
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接是否成功
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error); // 如果失败,就显示错误信息并停止脚本
}
echo "数据库连接成功!";
?>

把上面的 root、空密码和 my_database 换成你自己实际的信息,如果运行后能看到“数据库连接成功!”,那恭喜你,最基础的一步已经完成了。

第二步,从数据库里取数据,连接成功后,你就可以向数据库“提问”了,这个“提问”就是执行 SQL 查询语句,我们想从 “users” 表里把所有人的名字和邮箱都拿出来,根据菜鸟教程和 PHP 官方文档中的基础示例,可以这样写:

用PHP怎么连数据库然后把信息显示出来,简单又实用的办法分享

$sql = "SELECT id, name, email FROM users"; // 这是一条 SQL 查询语句,意思是选择 users 表中的 id, name, email 字段
$result = $conn->query($sql); // 让连接对象去执行这个查询,并把结果返回给 $result 变量

这里,$result 变量里就装着我们从数据库里要来的所有数据,这个结果还不是我们能直接看懂的格式,它需要一个处理过程。

第三步,把取出来的数据展示在网页上。$result 里可能有多条数据(多个用户),我们需要用一个循环来一条一条地把它读出来,MySQLi 提供了很直接的方法,参考 W3School 上列举的几种方式,fetch_assoc() 方法很常用,它能把一条记录变成一个关联数组,数组的键就是字段名(name, email),这样我们用起来就很方便。

if ($result->num_rows > 0) { // 先检查一下结果里是不是有数据
    // 如果有数据,就循环输出每一行数据
    while($row = $result->fetch_assoc()) {
        echo "ID: " . $row["id"]. " - 名字: " . $row["name"]. " - 邮箱: " . $row["email"]. "<br>";
    }
} else {
    echo "0 个结果"; // 如果表是空的,就显示没有结果
}

这段代码的意思就是:如果查询结果的行数大于零,那么就进入一个循环,在每次循环里,$row = $result->fetch_assoc() 会取出下一行数据,并把它变成一个数组,然后我们就可以用 $row["name"] 这样的方式来访问当前这一行用户的姓名了。echo 语句就是把信息输出到网页上,<br> 是为了换行,让每个用户的信息单独占一行。

用PHP怎么连数据库然后把信息显示出来,简单又实用的办法分享

千万别忘了第四步,关闭数据库连接,这就像去朋友家做客,离开时要关门一样,是个好习惯,可以释放资源。

$conn->close(); // 关闭之前打开的数据库连接

把上面所有的代码组合在一起,就是一个完整的、能跑通的例子了:

<?php
// 1. 连接数据库
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "my_database";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}
// 2. 执行查询
$sql = "SELECT id, name, email FROM users";
$result = $conn->query($sql);
// 3. 处理并显示数据
if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo "ID: " . $row["id"]. " - 名字: " . $row["name"]. " - 邮箱: " . $row["email"]. "<br>";
    }
} else {
    echo "没有找到任何用户。";
}
// 4. 关闭连接
$conn->close();
?>

你把这个代码保存为一个 .php 文件(比如叫 show_users.php),放到你的网站目录下,通过浏览器访问它,只要数据库里有数据,就能清楚地显示出来了。

这个方法之所以简单实用,是因为它没有依赖任何复杂的框架,就是纯碎的 PHP 代码,对于刚入门或者需要快速实现一个简单功能来说,非常直接有效,等你以后做更复杂的项目时,可能会接触到像 PDO 或者 Laravel 的 Eloquent 这样的更强大的工具,但这个基础的方法永远是核心原理,记住这个流程:连接 -> 查询 -> 处理结果 -> 关闭连接,万变不离其宗。