php增删改查需要哪些扩展_开启mysqli或pdo扩展方法【说明】
发布时间 - 2026-01-01 00:00:00 点击率:次PHP CRUD需启用mysqli或PDO扩展,因二者默认未开启;Linux用apt/dnf安装php-mysql/php-mysqlnd,Windows在php.ini中取消extension=mysqli和extension=pdo_mysql注释,重启服务后验证函数与类存在。
PHP 增删改查(CRUD)本身不依赖特定扩展,但必须启用至少一个数据库驱动扩展——mysqli 或 PDO(推荐搭配 pdo_mysql)。没开这两个中的任意一个,mysql_connect() 这类函数根本不存在,连连接都建立不了。
为什么 mysqli 和 PDO 都得「手动开启」?
PHP 默认编译时通常不启用数据库扩展,尤其是 Windows 下的 ZIP 包或某些 Linux 发行版精简包。它们被编译为动态模块(.so 或 .dll),需在 php.ini 中显式启用,否则调用会报错:Fatal error: Uncaught Error: Call to undefined function mysqli_connect() 或 Class 'PDO' not found。
-
mysqli是 MySQL 专用扩展,支持面向对象和过程式两种风格,对 MySQL 特性(如预处理、多语句、事务)支持更直接 -
PDO是通用数据库抽象层,本身不干活,必须配合具体驱动(如pdo_mysql);写法统一,换数据库时改动小 - 二者不能互相替代:启用了
PDO但没启pdo_mysql,依然连不上 MySQL
Linux 下启用 mysqli 和 pdo_mysql 的典型步骤
以主流发行版(Ubuntu/Debian/CentOS)为例,PHP 通常通过包管理器安装,扩展也对应独立包:
- Ubuntu/Debian:
sudo apt install php-mysql
(该包同时启用mysqli和pdo_mysql) - CentOS/RHEL 8+:
sudo dnf install php-mysqlnd
(mysqlnd是原生驱动,比libmysql更推荐) - 确认是否生效:
php -m | grep -E '^(mysqli|pdo|pdo_mysql)$'
应输出三行(mysqli、pdo、pdo_mysql) - 若用 Apache,重启服务:
sudo systemctl restart apache2
(Ubuntu)或sudo systemctl restart httpd
(CentOS) - Nginx + PHP-FPM 需重启
php-fpm:sudo systemctl restart php*-fpm
(版本号需补全,如php8.2-fpm)
Windows 下在 php.ini 中启用扩展
找到你实际使用的 php.ini 文件(运行 php --ini 查看路径),编辑它:
- 取消注释这两行(删除前面的分号
;):;extension=mysqli ;extension=pdo_mysql
→ 改成:extension=mysqli extension=pdo_mysql
- 注意:不是
extension=pdo——PDO核心已内置,但驱动必须单独开;pdo_mysql才是 MySQL 驱动 - 如果使用
php_xampp或旧版,可能看到php_mysqli.dll,确保extension_dir指向正确的ext/目录 - 改完保存,重启 Web 服务器(Apache 或 Nginx)或 PHP-FPM 进程
- 验
证:php -r "var_dump(function_exists('mysqli_connect'), class_exists('PDO'));"输出bool(true) bool(true)即成功
最容易忽略的是:开了 PDO 没开 pdo_mysql,或者开了 mysqli 却误以为 PDO 也能自动用上;还有人改了错误的 php.ini(CLI 和 Web 使用的配置文件常不同),结果 php -v 看着正常,网页里却报错。
# mysql
# php
# linux
# centos
# php8
# windows
# apache
# nginx
# ubuntu
# win
# 面向对象
# Error
# mysqli
# pdo
# bool
# class
# undefined
# function
# 对象
# 数据库
# debian
# 重启
# 开了
# 报错
# 的是
# 看着
# 发行版
# 尤其是
# 才是
# 两种
# 也能
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何快速搭建虚拟主机网站?新手必看指南
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
如何快速完成中国万网建站详细流程?
手机网站制作与建设方案,手机网站如何建设?
夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化
音响网站制作视频教程,隆霸音响官方网站?
清除minerd进程的简单方法
如何在云主机上快速搭建网站?
如何在建站主机中优化服务器配置?
EditPlus中的正则表达式 实战(4)
Laravel控制器是什么_Laravel MVC架构中Controller的作用与实践
微信小程序 闭包写法详细介绍
网站制作企业,网站的banner和导航栏是指什么?
如何快速生成专业多端适配建站电话?
如何在宝塔面板中创建新站点?
Laravel如何创建自定义Artisan命令?(代码示例)
消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工
Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置
Laravel Seeder填充数据教程_Laravel模型工厂Factory使用
Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】
如何为不同团队 ID 动态生成多个非值班状态按钮
Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用
Laravel怎么判断请求类型_Laravel Request isMethod用法
,在苏州找工作,上哪个网站比较好?
Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑
Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程
宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法
如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】
JavaScript模板引擎Template.js使用详解
HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】
香港服务器租用每月最低只需15元?
如何在腾讯云服务器快速搭建个人网站?
Laravel如何自定义分页视图?(Pagination示例)
Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】
今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】
如何在Windows服务器上快速搭建网站?
Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议
北京的网站制作公司有哪些,哪个视频网站最好?
Android使用GridView实现日历的简单功能
佛山企业网站制作公司有哪些,沟通100网上服务官网?
JS中对数组元素进行增删改移的方法总结
网站建设整体流程解析,建站其实很容易!
Python3.6正式版新特性预览
微信小程序 五星评分(包括半颗星评分)实例代码
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
Laravel如何使用Blade组件和插槽?(Component代码示例)
深圳网站制作培训,深圳哪些招聘网站比较好?
Win11怎样安装网易有道词典_Win11安装词典教程【步骤】
html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】
Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】


证: