MySQL和SQLite是本地部署PHP应用时最常用且原生支持度最高的两种数据库;前者需启用mysqli或PDO扩展并运行独立服务,后者依赖sqlite3和pdo_sqlite扩展且无需服务进程。

如果您在本地部署 PHP 应用,需要选择兼容且易于配置的数据库系统,则 MySQL 和 SQLite 是最常用、原生支持度最高的两种选项。以下是针对这两种数据库的连接配置方法:
一、PHP 连接 MySQL 的配置方法
MySQL 是关系型数据库,需运行独立服务(如 MySQL Server 或 MariaDB),PHP 通过 mysqli 扩展或 PDO 驱动与其通信。确保 php.ini 中已启用 mysqlnd 或 mysqli 扩展。
1、确认扩展已启用:打开 php.ini 文件,检查是否存在 extension=mysqli 或 extension=pdo_mysql,并确保前面无分号注释。
2、重启本地 Web 服务器(如 Apache 或 Nginx)使配置生效。
立即学习“PHP免费学习笔记(深入)”;
3、创建测试连接脚本,例如 connect_mysql.php:
4、在脚本中使用 mysqli 面向对象方式连接:$conn = new mysqli("localhost", "root", "password", "testdb", 3306);
5、若使用 PDO 方式,代码为:$pdo = new PDO("mysql:host=localhost;dbname=testdb;charset=utf8mb4", "root", "password");
二、PHP 连接 SQLite 的配置方法
SQLite 是嵌入式数据库,无需单独安装服务进程,PHP 默认启用 pdo_sqlite 和 sqlite3 扩展,仅需确保扩展未被禁用即可直接读写 .sqlite 文件。
1、检查 php.ini 中是否存在 extension=sqlite3 和 extension=pdo_sqlite,并确认未被注释。
2、保存 php.ini 后重启 Web 服务器。
3、创建数据库文件(如 data.sqlite)可直接通过 PHP 创建:$db = new SQLite3("data.sqlite");
4、执行建表语句:$db->exec("CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT);");
5、若使用 PDO 连接 SQLite,语法为:$pdo = new PDO("sqlite:data.sqlite");
三、验证数据库扩展是否可用的方法
PHP 提供内置函数检测扩展加载状态,避免因扩展缺失导致连接失败。该方法不依赖外部工具,仅需一个 PHP 脚本即可完成诊断。
1、新建 check_ext.php 文件。
2、写入代码:var_dump(extension_loaded("mysqli"), extension_loaded("pdo_mysql"), extension_loaded("sqlite3"), extension_loaded("pdo_sqlite"));
3、通过浏览器或 CLI 执行该脚本。
4、输出中对应位置显示 bool(true) 表示扩展已成功加载。
四、常见连接失败原因及对应配置项检查
连接异常通常源于扩展未启用、服务未运行或权限配置错误。逐一核对以下关键配置点可快速定位问题根源。
1、检查 MySQL 服务是否正在运行:sudo systemctl status mysql(Linux)或查看 Windows 服务列表中 MySQL 是否启动。
2、确认 php.ini 路径正确:执行 php --ini 查看实际加载的配置文件路径,避免修改了错误的 php.ini。
3、验证 MySQL 用户权限:登录 MySQL 后执行 SELECT User, Host FROM mysql.user;,确保 root@localhost 或对应用户存在且允许本地连接。
4、SQLite 文件路径需为绝对路径或相对于脚本执行路径的可写位置,否则会报错 unable to open database file。










