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

php怎么连MySQL数据库,操作步骤和代码示例讲解分享

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 "数据库连接成功!";
?>

代码讲解:

  1. 我们定义了四个变量,分别存储连接所需的信息。
  2. $conn = mysqli_connect(...) 这一行是核心,它尝试根据提供的信息去连接数据库,连接成功的话,会返回一个连接对象,我们把它保存在变量 $conn 中,这个 $conn 非常重要,后续的所有操作都需要用它。
  3. if (!$conn) 是判断连接是否失败。 表示“非”,!$conn 的意思就是“$conn 不存(即连接失败)”。
  4. 如果连接失败,mysqli_connect_error() 函数会返回具体的错误信息,然后用 die() 函数输出错误并停止脚本运行。
  5. 如果连接成功,就会打印出“数据库连接成功!”。

第二步:执行SQL查询

连接上数据库之后,我们就可以向它“发号施令”了,这个“命令”就是SQL语句,我们使用 mysqli_query() 函数来执行SQL语句。

SQL语句种类很多,最常见的有:

php怎么连MySQL数据库,操作步骤和代码示例讲解分享

  • 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);
}

代码讲解:

  1. 我们把一条INSERT语句当作字符串,赋值给变量 $sql
  2. mysqli_query($conn, $sql) 是执行查询的函数,它需要两个参数:第一个是之前建立的连接对象 $conn,第二个是要执行的SQL语句 $sql
  3. 这个函数执行成功会返回 true,失败则返回 false,所以我们用 if 语句来判断是否成功,并给出相应提示。
  4. 如果失败,我们用 mysqli_error($conn) 来输出数据库返回的错误信息,方便排查问题。

第三步:处理查询结果(以SELECT为例)

执行INSERT、UPDATE、DELETE这类操作,我们通常只关心成功与否,但执行SELECT查询时,我们的目的是获取数据,这时,mysqli_query() 函数会返回一个结果集对象,我们需要从这个结果集里把数据“取出来”。

php怎么连MySQL数据库,操作步骤和代码示例讲解分享

代码示例(查询数据):

// ... 接上面的连接代码,$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 结果"; // 没有查询到数据
}

代码讲解:

  1. $result = mysqli_query($conn, $sql); 执行查询,并将返回的结果集保存在 $result 变量中。
  2. mysqli_num_rows($result) 函数用来获取结果集中的行数,如果大于0,说明有数据。
  3. mysqli_fetch_assoc($result) 是这个环节的关键,它从结果集中取出一行数据,并以关联数组的形式返回,数组的键(key)就是数据库表的字段名(id, name, email),值(value)就是对应字段的数据。
  4. while($row = mysqli_fetch_assoc($result)) 是一个循环,每次循环,它都取出一行数据赋值给 $row,直到没有更多数据可取(此时函数返回 null,循环结束)。
  5. 在循环体内,我们就可以通过 $row["字段名"] 的方式来访问当前这行数据的每个字段值,并进行输出或处理。

第四步:关闭连接

当所有数据库操作都完成后,一个好习惯是手动关闭连接,释放资源,虽然PHP脚本执行结束后会自动关闭,但显式地关闭是一个更严谨的做法。

代码示例:

// ... 所有数据库操作完成后
mysqli_close($conn);
echo "连接已关闭。";

就是使用PHP的MySQLi扩展进行数据库操作的完整流程和代码示例,核心就是四个函数:mysqli_connect()(连)、mysqli_query()(做)、mysqli_fetch_assoc()(取)、mysqli_close()(关),掌握了它们,你就具备了用PHP操作MySQL数据库的基础能力,在实际项目中,还需要注意安全问题,比如使用预处理语句来防止SQL注入攻击,但那是更进阶的话题了。