PHP 连接 MySQL 数据库:从基础配置到读写操作

许南星
许南星
发布时间:2026-10-14| 5人浏览过
原创

本文整理 PHP 连接 MySQL 数据库的常见实现方式,包括连接参数配置、建立连接、读取表数据及写入数据的核心代码片段。针对旧版教程中的废弃函数进行标注,并提供现代开发环境的兼容性建议。

核心逻辑与前置准备

在进行数据库操作前,首先需要明确数据库服务器的地址、用户名、密码以及目标数据库名称。为了便于管理和复用,通常将这些敏感信息定义为全局变量或放置在独立的配置文件中进行引用。

以下是标准的配置变量定义示例:

$mysql_server_name = 'localhost'; // 数据库服务器地址
$mysql_username = 'root';         // 数据库用户名
$mysql_password = '123456';       // 数据库密码
$mysql_database = 'Mydb';         // 目标数据库名

在实际项目中,建议将上述内容保存为 db_config.php,并在其他需要访问数据库的文件中使用 require('db_config.php'); 引入,以实现关注点分离。

建立数据库连接与初始化

连接数据库是执行任何 SQL 操作的前提。传统教程中常使用 mysql_connect,但该函数在 PHP 5.5.0 版本后已被废弃,并在 PHP 7.0.0 中被移除。现代开发应使用 mysqli 扩展或 PDO。

以下展示基于传统方法的连接逻辑(仅用于理解原理,生产环境请升级):

// 建立连接
$conn = mysql_connect($mysql_server_name, $mysql_username, $mysql_password) or die("error connecting");

// 设置字符编码,确保数据交互无乱码
mysql_query("set names 'utf8'");

// 选择目标数据库
mysql_select_db($mysql_database);

注意: 若需兼容当前主流 PHP 版本,请使用 mysqli 构造函数:
$conn = new mysqli($mysql_server_name, $mysql_username, $mysql_password, $mysql_database);

读取数据库内容

数据查询通常通过 SQL 语句执行。查询结果返回一个结果集对象,需要通过循环逐行提取数据。

示例:查询 news 表并遍历输出标题字段:

$sql = "SELECT * FROM news";
$result = mysql_query($sql, $conn);

// 使用 while 循环逐行获取数据
while ($row = mysql_fetch_array($result)) {
    echo "
"; echo $row['Topic'] . "
"; echo "
"; }

此处利用 mysql_fetch_array 将一行数据提取为关联数组或索引数组,直至遍历完所有记录。在现代 mysqli 中对应方法为 mysqli_fetch_assoc() 或 fetch_array()。

向数据库写入数据

插入数据需构建 INSERT INTO 语句。务必注意防止 SQL 注入攻击,旧版代码直接拼接变量存在严重安全隐患。

传统写入示例(仅供参考逻辑结构):

// 假设 $Topic 和 $Content 已通过 POST/GET 获取
$sql = "INSERT INTO messageboard (Topic, Content, Enabled, Date) 
        VALUES ('$Topic', '$Content', '1', '2011-01-12')";

mysql_query($sql, $conn);

// 操作完成后关闭连接
mysql_close($conn);

安全警示: 直接使用变量拼接 SQL 极易导致注入风险。在生产环境中,请务必使用预处理语句(Prepared Statements),例如 PDO 的 prepare 和 execute,或 mysqli 的绑定参数功能。

以上就是 PHP 连接及操作 MySQL 数据库的详细内容,更多关于 PHP 数据库编程与安全防护的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。