php怎么连MySQL数据库,操作步骤和代码示例讲解分享
- 问答
- 2026-01-11 00:31:34
- 2
PHP连接MySQL数据库主要使用的是MySQLi扩展,整个过程可以概括为几个步骤:建立连接、执行查询、处理结果、关闭连接,下面我们一步步来看,并配上详细的代码和讲解。
第一步:建立数据库连接
要操作数据库,首先得和它“搭上线”,这就像你要去朋友家做客,得先知道他家的地址(主机名)、门牌号(端口)、你的名字(用户名)和密码。
在PHP中,我们使用 mysqli_connect() 函数来建立连接,这个函数需要四个基本信息:
- 主机名:通常是
localhost,表示数据库和你的网站代码在同一台服务器上,如果不在,就需要填写具体的服务器IP地址或域名。 - 用户名:登录数据库用的账号,
root。 - 密码:对应账号的密码。
- 数据库名:你要操作的具体的数据库名称。
代码示例:
<?php
$servername = "localhost";
$username = "root";
$password = "your_password"; // 这里要换成你自己的数据库密码
$dbname = "my_database"; // 这里要换成你要用的数据库名
// 创建连接
$conn = mysqli_connect($servername, $username, $password, $dbname);
// 检查连接是否成功
if (!$conn) {
die("连接失败: " . mysqli_connect_error());
}
echo "数据库连接成功!";
?>
代码讲解:
- 我们定义了四个变量,分别存储连接所需的信息。
$conn = mysqli_connect(...)这一行是核心,它尝试根据提供的信息去连接数据库,连接成功的话,会返回一个连接对象,我们把它保存在变量$conn中,这个$conn非常重要,后续的所有操作都需要用它。if (!$conn)是判断连接是否失败。 表示“非”,!$conn的意思就是“$conn不存(即连接失败)”。- 如果连接失败,
mysqli_connect_error()函数会返回具体的错误信息,然后用die()函数输出错误并停止脚本运行。 - 如果连接成功,就会打印出“数据库连接成功!”。
第二步:执行SQL查询
连接上数据库之后,我们就可以向它“发号施令”了,这个“命令”就是SQL语句,我们使用 mysqli_query() 函数来执行SQL语句。
SQL语句种类很多,最常见的有:

- INSERT:向表中插入新数据。
- SELECT:从表中查询数据。
- UPDATE:更新表中已有的数据。
- DELETE:从表中删除数据。
代码示例(插入数据):
假设我们有一个名为 users 的表,有 id, name, email 三个字段。
// ... 接上面的连接代码,$conn 已经存在
// 准备要执行的 SQL 语句:向 users 表插入一条新记录
$sql = "INSERT INTO users (name, email) VALUES ('张三', 'zhangsan@example.com')";
// 执行 SQL 查询
if (mysqli_query($conn, $sql)) {
echo "新记录插入成功!";
} else {
echo "错误: " . $sql . "<br>" . mysqli_error($conn);
}
代码讲解:
- 我们把一条INSERT语句当作字符串,赋值给变量
$sql。 mysqli_query($conn, $sql)是执行查询的函数,它需要两个参数:第一个是之前建立的连接对象$conn,第二个是要执行的SQL语句$sql。- 这个函数执行成功会返回
true,失败则返回false,所以我们用if语句来判断是否成功,并给出相应提示。 - 如果失败,我们用
mysqli_error($conn)来输出数据库返回的错误信息,方便排查问题。
第三步:处理查询结果(以SELECT为例)
执行INSERT、UPDATE、DELETE这类操作,我们通常只关心成功与否,但执行SELECT查询时,我们的目的是获取数据,这时,mysqli_query() 函数会返回一个结果集对象,我们需要从这个结果集里把数据“取出来”。

代码示例(查询数据):
// ... 接上面的连接代码,$conn 已经存在
$sql = "SELECT id, name, email FROM users";
$result = mysqli_query($conn, $sql); // 执行查询,返回结果集
// 检查是否有数据返回
if (mysqli_num_rows($result) > 0) {
// 使用 mysqli_fetch_assoc() 循环输出每行数据
while($row = mysqli_fetch_assoc($result)) {
echo "ID: " . $row["id"]. " - 名字: " . $row["name"]. " - 邮箱: " . $row["email"]. "<br>";
}
} else {
echo "0 结果"; // 没有查询到数据
}
代码讲解:
$result = mysqli_query($conn, $sql);执行查询,并将返回的结果集保存在$result变量中。mysqli_num_rows($result)函数用来获取结果集中的行数,如果大于0,说明有数据。mysqli_fetch_assoc($result)是这个环节的关键,它从结果集中取出一行数据,并以关联数组的形式返回,数组的键(key)就是数据库表的字段名(id,name,email),值(value)就是对应字段的数据。while($row = mysqli_fetch_assoc($result))是一个循环,每次循环,它都取出一行数据赋值给$row,直到没有更多数据可取(此时函数返回null,循环结束)。- 在循环体内,我们就可以通过
$row["字段名"]的方式来访问当前这行数据的每个字段值,并进行输出或处理。
第四步:关闭连接
当所有数据库操作都完成后,一个好习惯是手动关闭连接,释放资源,虽然PHP脚本执行结束后会自动关闭,但显式地关闭是一个更严谨的做法。
代码示例:
// ... 所有数据库操作完成后 mysqli_close($conn); echo "连接已关闭。";
就是使用PHP的MySQLi扩展进行数据库操作的完整流程和代码示例,核心就是四个函数:mysqli_connect()(连)、mysqli_query()(做)、mysqli_fetch_assoc()(取)、mysqli_close()(关),掌握了它们,你就具备了用PHP操作MySQL数据库的基础能力,在实际项目中,还需要注意安全问题,比如使用预处理语句来防止SQL注入攻击,但那是更进阶的话题了。
本文由芮以莲于2026-01-11发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:http://waw.haoid.cn/wenda/78375.html
