Skip to content

MySQL 数据库

PHP 提供了强大的扩展,用于连接和操作关系型数据库(Relational Databases),这使其成为动态 Web 开发的基石。

MySQL 及其流行的开源分支 MariaDB 是与 PHP 结合使用最广泛的数据库系统。

  • 关系型数据库管理系统 (RDBMS),广泛用于 Web 应用程序。
  • 基于服务器的系统,旨在高效存储、管理和检索数据。
  • 适用于从小型网站到大型复杂企业系统的各种应用程序。
  • 以其性能、可靠性和易用性而闻名。
  • 使用标准的结构化查询语言 (SQL) 进行数据操作。
  • 可在多种操作系统上使用(跨平台)。
  • 开源且免费使用(社区版本)。
  • MySQL 主要由 Oracle Corporation 开发、分发和支持。
  • MariaDB 是由 MySQL 原始开发者领导的社区开发分支,确保了其持续的开源可用性。

这些数据库中的数据被组织成表(tables)。可以将表想象成电子表格:它由列(columns)(定义数据类型,如“名称”或“电子邮件”)和行(rows)(每行代表一个特定的记录或条目)组成。

数据库擅长存储结构化信息。例如,一家企业可能会使用一个包含以下表的数据库:

  • Employees(存储员工详细信息,如 ID、姓名、职位)
  • Products(存储产品信息,如 SKU、名称、价格、描述)
  • Customers(存储客户数据,如 ID、姓名、联系方式)
  • Orders(关联客户和产品,存储订单详细信息)

PHP 和 MySQL/MariaDB 的组合非常流行,原因如下:

  • 跨平台(Cross-Platform): 可以在一个操作系统(如 Windows 或 macOS)上开发,并在另一个操作系统(如 Linux)上无缝部署。
  • 出色集成(Excellent Integration): PHP 提供了专用扩展(MySQLi 和 PDO),可实现轻松高效的数据库交互。
  • 广泛社区支持(Wide Community Support): 提供丰富的文档、教程和社区论坛,用于故障排除和学习。
  • 经济高效(Cost-Effective): PHP 和 MySQL/MariaDB 的社区版本都是免费且开源的。

查询(Query)本质上是发送给数据库的一个问题或命令,用于检索、插入、更新或删除数据。

使用 SQL,您可以请求特定信息,数据库将返回一个结果集(Result Set)(匹配您条件的行集合)。

考虑这个标准 SQL 查询:

SELECT first_name, last_name FROM employees WHERE department = 'Sales';

此查询从 employees 表中选择 first_name 和 last_name 列,但仅限于 department 列等于 ‘Sales’ 的行。

SQL 是一个用于与关系型数据库交互的强大语言。您可以在专门的 SQL 教程中了解更多信息。

PHP 提供了两个主要扩展用于处理 MySQL/MariaDB:

  • MySQLi (MySQL Improved): 提供面向过程和面向对象接口。专用于 MySQL/MariaDB。
  • PDO (PHP Data Objects): 提供一个一致的接口(数据访问抽象层),用于连接多种数据库类型(MySQL、PostgreSQL、SQLite 等)。由于其可移植性和更简洁的 API,通常在新项目中使用 PDO 更受欢迎。

重要提示: 较旧的 mysql_* 函数已弃用,并在现代 PHP 版本中移除。请勿使用它们。 请始终使用 MySQLi 或 PDO。

MySQLi 和 PDO 都支持预处理语句(Prepared Statements),这对于防止 SQL 注入漏洞(常见的 Web 安全风险)至关重要。

为了跟进数据库示例,您需要一个能够访问 MySQL 或 MariaDB 服务器的 PHP 环境。流行的本地开发环境,如 XAMPP、MAMP、WAMP 或 Docker 环境,通常会捆绑 PHP 和数据库服务器。

您可以从 mariadb.org 下载 MariaDB,从 mysql.com 下载 MySQL。确保在您的 php.ini 配置文件中启用了必要的 PHP 扩展(pdo_mysql 或 mysqli)。