PHP中使用mysqli扩展连接MySQL数据库:面向对象与面向过程指南

Mason
Mason
发布时间:2026-10-13 | 2人浏览过
原创

本文详细介绍如何在PHP中使用mysqli扩展连接MySQL数据库,涵盖了面向对象和面向过程两种主流实现方式。内容包括数据库连接初始化、指定或切换数据库、执行查询语句、获取不同格式的结果集数据以及正确释放资源和关闭连接的最佳实践。

准备条件与连接建立

在使用 mysqli 之前,确保 PHP 环境已启用该扩展。连接数据库是首要步骤,需提供主机地址、用户名、密码和数据库名称。以下是两种编程风格的具体代码示例。

第1步:使用面向对象方式建立连接

目的:创建 mysqli 对象实例以进行后续数据库交互。 入口/动作:通过 new mysqli() 构造函数传入参数。 重要参数:分别是 'localhost' (主机), 'root' (用户), '123456' (密码), 'dbname' (数据库名)。

$db = new mysqli('localhost', 'root', '123456', 'dbname');

第2步:使用面向过程方式建立连接

目的:创建一个连接标识符供函数调用。 入口/动作:调用 mysqli_connect() 函数。 重要参数:同上,按顺序传入主机、用户、密码和数据库。

$db = mysqli_connect('localhost', 'root', '123456', 'dbname');

切换数据库与执行查询

如果在连接时未指定数据库,或者需要中途切换数据库,可以使用特定的方法或函数来选择目标库。

第3步:选择或切换使用的数据库

面向对象:调用 $db->select_db('dbname') 方法。 面向过程:调用 mysqli_select_db($db, 'dbname') 函数。 完成状态:后续的查询将作用于指定的 dbname 数据库中。

// 面向对象示例
$db->select_db('dbname');
// 面向过程示例
mysqli_select_db($db, 'dbname');

第4步:构建并执行SQL查询

目的:向数据库发送指令并获取返回的数据集。 动作:定义SQL字符串,然后提交给连接对象或函数。

以查询语句为例:

$query = "SELECT * FROM user WHERE uid=4";
$result = $db->query($query); // 面向对象方式
// 或者面向过程:$result = mysqli_query($db, $query);

对于修改类操作(INSERT、UPDATE、DELETE),可以通过检查影响行数来判断操作是否成功:

// 面向对象
$affected_rows = $db->affected_rows;
// 面向过程
$affected_rows = mysqli_affected_rows($db);

获取解析结果数据

查询成功后,$result 是一个结果集对象。需要使用不同的方法提取数据,具体取决于业务需求的数据结构偏好。

  • 关联数组 (fetch_assoc/mysqli_fetch_assoc):返回键为字段名的数组。例如通过 $row['uid'] 取值。
  • 列举/索引数组 (fetch_row/mysqli_fetch_row):返回键为数字索引的数组。例如通过 $row[0] 取值。
  • 混合数组 (fetch_array/mysqli_fetch_array):同时包含关联键和索引键。既支持 $row['uid'] 也支持 $row[0]。
  • 对象 (fetch_object/mysqli_fetch_object):返回一个对象实例。例如通过 $row->uid 取值。
// 面向对象示例
$row = $result->fetch_assoc();
$row = $result->fetch_row();
$row = $result->fetch_array();
$row = $result->fetch_object();

// 统计总行数
$result_num = $result->num_rows;

清理资源与断开连接

为了节省内存并保持系统整洁,应当在脚本结束前显式释放结果集和关闭数据库连接。

第5步:释放结果集

面向对象:调用 $result->free()。 面向过程:调用 mysqli_free_result($result)。 注意:这会立即释放与该结果集关联的内存。

第6步:关闭数据库连接

面向对象:调用 $db->close()。 面向过程:调用 mysqli_close($db)。 说明:虽然PHP在脚本执行完毕后会自动关闭所有打开的连接,但在大型应用中建议手动管理连接生命周期以避免潜在的资源占用问题。

$result->free(); // 释放结果集
$db->close();    // 关闭连接

总结

掌握 mysqli 的面向对象与面向过程用法,是进行PHP后端开发的基础。核心流程遵循“连接 → 选库 → 查改删 → 取数 → 释放”的顺序。在实际开发中,建议始终开启错误处理机制(如检查连接返回值),以提高程序的健壮性。

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

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表