PHP MySQL 更新记录

2025 年 5 月 15 日 | 阅读 4 分钟

使用 PHP 更新 MySQL 数据库中的记录是动态 Web 内容管理中的一项标准过程。尽管早期版本的 PHP 使用 mysql_query() 函数进行数据库操作,但该函数在 PHP 5.5 中已被弃用,并在 PHP 7.0 中完全移除。

如今,鼓励开发人员使用 MySQLi 或 PDO (PHP Data Objects) 来安全高效地完成数据库功能。替代方案是:

  • mysqli_query() - 这是一个改进版本,兼容过程式和面向对象的语法。
  • PDO::_query()PDO::exec() - 它在 PHP 中提供了标准化的数据库访问方式。

UPDATE 语句语法

注意:省略 WHERE 子句将更新表中的所有记录,这通常是意外造成的,有时甚至具有破坏性。

示例

在我们执行更新之前,假设 emp1 表包含以下数据

表:emp1(更新前)

ID名称薪金
1Alice7000
2Bob6000
3Samuel8000

示例

输出

Connected successfully
Record updated successfully

表(emp1):更新记录后

ID名称薪金
1Alice7000
2John9000
3Samuel8000

说明

本示例展示了与 MySQL 数据库的连接,并修改了 emp1 表中 id = 2 记录的 name 和 salary 列。如果更新成功,将打印一条确认消息。否则,将引发错误消息。

PHP MySQLi 更新记录(面向对象)

示例

在运行更新查询之前,假设数据表中存在以下数据

表: data(更新前)

ID名称年龄
200Michael26
201Rachel27
202Thomas25

示例

输出

Record was updated successfully.

表:data(更新后)

ID名称年龄
200Michael26
201Rachel28
202Thomas25

说明

这是面向对象的 MySQLi 方法更新记录的示例。它会更改 data 表中 id = 201 的行的 Age 列的内容。该脚本在执行更新查询之前建立数据库连接,并据此提供反馈。

PHP PDO 更新记录

在运行 PDO 更新之前,假设 data 表包含

表:data(更新前)

ID名称年龄
200Michael26
201Rachel24
202Thomas25

示例

输出

Record was updated successfully.

表:data(更新后)

ID名称年龄
200Michael26
201Rachel27
202Thomas25

说明

此代码使用 PDO 访问数据库并执行更新语句。它将错误模式配置为抛出异常,这有助于调试。成功更新后,将显示成功消息;否则,将显示异常消息。

更新多个列

示例

在运行更新之前,假设 data 表包含

表:data(更新前)

ID名字姓氏年龄
200Alice棕色29
201JohnDoe27
202艾米丽Clark26

示例

输出

Record updated successfully.

表:data(更新后)

ID名字姓氏年龄
200Alice棕色29
201山姆Smith30
202艾米丽Clark26

说明

本示例展示了如何在一次查询中修改多个字段。它会更改 data 表中 id = 201 的行的 FirstName、LastName 和 Age 列。连接通过过程式 MySQLi 方法进行管理。

使用 PHP 中的 UPDATE 查询的最佳实践

在 PHP 中,更新记录时使用 MySQL,因此请始终在 WHERE 子句前加上代码,以免意外覆盖所有行。在处理用户输入时,使用预处理语句也是一个好习惯,可以防止您的数据库发生 SQL 注入。在使用查询之前,请检查和清理您的数据。

如果您只处理 MySQL 数据库,请使用 MySQLi;如果您处理其他数据库,请使用 PDO。无论您使用哪种方法,启用错误处理将有助于您在开发过程中发现问题,并使您的应用程序更可靠。

结论

MySQLi 和 PDO 扩展都支持通过 PHP 在 MySQL 数据库中更新数据的基本操作。MySQLi 支持过程式和面向对象风格,而 PDO 提供了更灵活和安全的方式,尤其是在使用多种数据库类型时。通过遵守最佳实践并选择正确的方法,开发人员可以有效地处理 PHP 应用程序中的数据库更新。