全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

php增删改查需要哪些扩展_开启mysqli或pdo扩展方法【说明】

PHP CRUD需启用mysqli或PDO扩展,因二者默认未开启;Linux用apt/dnf安装php-mysql/php-mysqlnd,Windows在php.ini中取消extension=mysqli和extension=pdo_mysql注释,重启服务后验证函数与类存在。

PHP 增删改查(CRUD)本身不依赖特定扩展,但必须启用至少一个数据库驱动扩展——mysqliPDO(推荐搭配 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
    (该包同时启用 mysqlipdo_mysql
  • CentOS/RHEL 8+:
    sudo dnf install php-mysqlnd
    mysqlnd 是原生驱动,比 libmysql 更推荐)
  • 确认是否生效:
    php -m | grep -E '^(mysqli|pdo|pdo_mysql)$'
    应输出三行(mysqlipdopdo_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  # 重启  # 开了  # 报错  # 的是  # 看着  # 发行版  # 尤其是  # 才是  # 也能  # 两种 


相关文章: 网站专业制作公司有哪些,做一个公司网站要多少钱?  三星网站视频制作教程下载,三星w23网页如何全屏?  大学网站设计制作软件有哪些,如何将网站制作成自己app?  外贸公司网站制作,外贸网站建设一般有哪些步骤?  C++用Dijkstra(迪杰斯特拉)算法求最短路径  完全自定义免费建站平台:主题模板在线生成一站式服务  建站中国必看指南:CMS建站系统+手机网站搭建核心技巧解析  家具网站制作软件,家具厂怎么跑业务?  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  山东云建站价格为何差异显著?  MySQL查询结果复制到新表的方法(更新、插入)  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  如何通过西部数码建站助手快速创建专业网站?  制作旅游网站html,怎样注册旅游网站?  建站主机选购指南:核心配置优化与品牌推荐方案  网站建设制作、微信公众号,公明人民医院怎么在网上预约?  简历在线制作网站免费,免费下载个人简历的网站是哪些?  如何基于云服务器快速搭建个人网站?  宁波自助建站系统如何快速打造专业企业网站?  如何配置WinSCP新建站点的密钥验证步骤?  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  七夕网站制作视频,七夕大促活动怎么报名?  装修招标网站设计制作流程,装修招标流程?  广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?  建站主机核心功能解析:服务器选择与网站搭建流程指南  招贴海报怎么做,什么是海报招贴?  黑客如何通过漏洞一步步攻陷网站服务器?  建站之星北京办公室:智能建站系统与小程序生成方案解析  如何在IIS7上新建站点并设置安全权限?  php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  广东专业制作网站有哪些,广东省能源集团有限公司官网?  高防服务器租用首荐平台,企业级优惠套餐快速部署  广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?  建站VPS能否同时实现高效与安全翻墙?  如何快速完成中国万网建站详细流程?  如何通过智能用户系统一键生成高效建站方案?  建站之星后台搭建步骤解析:模板选择与产品管理实操指南  如何制作算命网站,怎么注册算命网站?  建站之星后台管理:高效配置与模板优化提升用户体验  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  如何在腾讯云免费申请建站?  佛山网站制作系统,佛山企业变更地址网上办理步骤?  建站主机如何选?性能与价格怎样平衡?  如何在Golang中使用encoding/gob序列化对象_存储和传输数据  公司网站设计制作厂家,怎么创建自己的一个网站?  网站制作公司广州有几家,广州尚艺美发学校网站是多少?  如何选择可靠的免备案建站服务器?  如何用PHP快速搭建高效网站?分步指南  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。