PHP中使用MySQLi连接数据库的两种方法及优势详解

程一诺
程一诺
发布时间:2026-10-13| 5人浏览过
原创

本文将详细介绍如何在PHP中使用 mysqli(MySQL Improved)扩展连接和操作数据库。通过函数式和面向对象两种编程范式,展示建立连接、执行SQL查询、获取结果集以及释放资源的标准操作流程。

使用目的与背景

mysqli(原称MySQL Enhanced Extension)是专为PHP设计的增强型数据库接口,旨在替代旧有的 mysql 扩展。它不仅提供了更简洁的操作方式,还支持面向对象编程接口、预处理语句(Prepared Statements)、事务处理等现代数据库特性,显著提升了代码的安全性与维护性。

准备条件

  • 安装PHP运行环境,并确保服务器端已加载 mysqli 扩展。
  • 配置一个MySQL数据库实例,记录主机地址、用户名、密码及数据库名称。

第1步:使用函数式风格连接数据库

这是最传统的连接方式,通过内置的全局函数进行交互,适合习惯过程式编程的开发人员。

  1. 入口:新建 index.php 文件并打开PHP标签。
  2. 动作:调用 mysqli_connect 函数填入连接参数。
  3. 重要参数:主机名(如 'localhost')、用户名、密码、目标库名。
  4. 完成状态:成功返回 $link 对象,失败则触发错误提示并终止脚本。
复制代码
<?php 
/* 连接到 MySQL 服务器 */ 
$link = mysqli_connect( 
        'localhost',     /* 连接的主机地址 */ 
        'user',           /* 连接的用户名 */ 
        'password',       /* 连接密码 */ 
        'world');        /* 默认数据库名 */ 
if (!$link) { 
    printf("无法连接到 MySQL Server. 错误代码: %s", mysqli_connect_error()); 
    exit; 
} 
/* 发送查询到服务器 */ 
if ($result = mysqli_query($link, 'SELECT Name, Population FROM City ORDER BY Population DESC LIMIT 5')) { 
    print("大型城市列表如下:\n"); 
    /* 获取查询结果 */ 
        while ($row = mysqli_fetch_assoc($result)) { 
            printf("%s (%s)\n", $row['Name'], $row['Population']); 
        } 
    /* 销毁结果集并释放内存 */ 
        mysqli_free_result($result); 
} 
/* 关闭数据库连接 */ 
mysqli_close($link); 
?> 

第2步:使用面向对象(OOP)风格连接数据库

利用类实例化的方式进行操作,逻辑结构清晰,是现代PHP开发的主流推荐方式。

  1. 入口:初始化 mysqli 类的实例。
  2. 动作:直接调用实例属性与方法,如 $mysqli->query()。
  3. 重要参数:构造函数中的四个基础连接参数。
  4. 完成状态:成功获得 $mysqli 实例对象,可连续调用其内部方法。
复制代码
<?php 
/* 连接到 MySQL 服务器 */ 
$mysqli = new mysqli('localhost', 'user', 'password', 'world'); 
if (mysqli_connect_errno()) { 
    printf("无法连接到 MySQL Server. 错误代码: %s", mysqli_connect_error()); 
    exit; 
} 
/* 发送查询到服务器 */ 
if ($result = $mysqli->query('SELECT Name, Population FROM City ORDER BY Population DESC LIMIT 5')) { 
    print("大型城市列表如下:\n"); 
    /* 获取查询结果 */ 
        while ($row = $result->fetch_assoc()) { 
            printf("%s (%s)\n", $row['Name'], $row['Population']); 
        } 
    /* 销毁结果集并释放内存 */ 
        $result->close(); 
} 
/* 关闭数据库连接 */ 
$mysqli->close(); 
?> 

关键特性说明

除了基础的增删改查,现代版本的 mysqli 还支持高级功能:

  • 预处理语句:支持绑定参数,有效防范 SQL 注入攻击。
  • 多语句执行:允许在一次操作中发送多条SQL指令。
  • 调试模式:提供丰富的错误日志记录方式。

以上就是关于在PHP中使用MySQLi连接数据库的详细内容,更多关于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 算法库。