php数据库怎么进用ci框架进_phpCI连库法【步骤】

发布时间 - 2026-01-29 00:00:00    点击率:
CodeIgniter 3 默认不支持 PHP 8.1+ 的 mysql_* 扩展,须用 mysqli 或 pdo 驱动并正确配置于 application/config/database.php;CI 4 则需在 app/Config/Database.php 中设置,通过 \Config\Database::connect() 获取实例,且注意 strict mode 兼容性。

CodeIgniter 3 默认不支持 PHP 8.1+ 的 mysql_connect() 和废弃的 mysql_* 扩展,直接“连库失败”八成是驱动没配对或配置写错位置。

确认你用的是 CI 3 还是 CI 4

CI 3 和 CI 4 的数据库配置方式、驱动名、加载逻辑完全不同,混用会导致 Class 'CI_DB' not foundDatabase: Unable to connect to your database server

  • CI 3:配置在 application/config/database.php,驱动名是 mysqli(不是 mysql)或 pdo
  • CI 4:配置在 app/Config/Database.php,使用 PDO 实例化,默认驱动是 MySQLi,但类结构和加载方式彻底重构
  • 如果你从 CI 2 升级上来,mysql 驱动已完全移除,必须改 mysqlipdo

CI 3 中正确配置 mysqli 数据库连接

重点不是“怎么填”,而是填对地方、用对键名、避开过时写法:

  • $db['default']['hostname'] = 'localhost';(不要写 127.0.0.1 除非明确需要 IPv4,本地用 localhost 更稳妥)
  • $db['default']['username'] = 'root';(密码为空时,'password' => '' 不能省略)
  • $db['default']['database'] = 'myapp';(库名必须已存在,CI 不自动建库)
  • $db['default']['dbdriver'] = 'mysqli';(绝对不要写 mysql,否则报 Unknown driver
  • $db['default']['char_set'] = 'utf8mb4';(推荐,避免 emoji 存储异常)
  • 如果 MySQL 启用了 strict mode,建议加:$db['default']['stricton'] = FALSE;,否则某些 INSERT 可能报错

CI 4 中启用数据库并验证连接

CI 4 不再靠 $this->load->database(),而是通过服务容器获取实例,常见连不上是因为没启用或配置未生效:

  • 确保 app/Config/Database.phppublic $default 组的 DSN 为空(CI 4 推荐拆解配置而非拼 DSN)
  • 检查 public $default

    hostnameusernamepassworddatabase 是否赋值,且 DBDriverMySQLi(首字母大写)
  • 在控制器中用:$db = \Config\Database::connect();,而不是 $this->db(除非你已在 BaseController 中初始化)
  • 调试连接是否成功:var_dump($db->connID !== false); —— 返回 bool(true) 才算通
  • 注意:CI 4 默认开启 strictOn,若 MySQL 版本较老(如 5.6),可能需设为 false 避免语法兼容问题

连得上但查不出数据?检查 active record 模式和错误抑制

CI 的查询失败常常静默,尤其在生产环境 display_errors = Off 时:

  • 开发阶段务必打开调试:define('ENVIRONMENT', 'development'); 并确认 app/Config/Logger.php$threshold ≥ 1
  • 执行查询后立即检查:if ($this->db->error()['code'] !== 0) { print_r($this->db->error()); }
  • CI 3 中 $this->db->get() 默认返回对象,但若表不存在或字段名错,不会抛异常,只会返回空结果;可用 $this->db->last_query() 看实际发了什么 SQL
  • CI 4 中对应的是 $builder->getCompiledSelect()$db->getLastQuery()->getQuery()

真正卡住的地方往往不是“怎么连”,而是驱动名写错、配置文件路径不对、MySQL 用户没远程权限(localhost ≠ 127.0.0.1 的权限体系)、或 CI 自带的缓存机制把旧错误配置记住了——删掉 application/cache/ 下所有文件再试一次,比反复改配置更有效。


# mysql  # php  # word  # app  # 配置文件  # sql  # define  # if  # Error  # mysqli  # pdo  # bool  # class  # public  # 对象  # default  # this  # database  # 数据库  # 重构  # 的是  # 不支持  # 要写  # 为空  # 加载  # 如果你  # 是因为  # 不出  # 设为  # 只会 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 详解jQuery停止动画——stop()方法的使用  Python正则表达式进阶教程_复杂匹配与分组替换解析  Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置  企业网站制作这些问题要关注  Claude怎样写结构化提示词_Claude结构化提示词写法【教程】  php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】  如何用搬瓦工VPS快速搭建个人网站?  Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧  JS实现鼠标移上去显示图片或微信二维码  Laravel项目怎么部署到Linux_Laravel Nginx配置详解  Android中AutoCompleteTextView自动提示  如何在IIS服务器上快速部署高效网站?  济南网站建设制作公司,室内设计网站一般都有哪些功能?  Laravel如何处理异常和错误?(Handler示例)  Android GridView 滑动条设置一直显示状态(推荐)  Laravel如何与Inertia.js和Vue/React构建现代单页应用  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制  如何快速选择适合个人网站的云服务器配置?  简历在线制作网站免费版,如何创建个人简历?  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  Laravel API资源类怎么用_Laravel API Resource数据转换  使用PHP下载CSS文件中的所有图片【几行代码即可实现】  Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践  香港服务器网站推广:SEO优化与外贸独立站搭建策略  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  Laravel控制器是什么_Laravel MVC架构中Controller的作用与实践  打造顶配客厅影院,这份100寸电视推荐名单请查收  Python自然语言搜索引擎项目教程_倒排索引查询优化案例  JavaScript模板引擎Template.js使用详解  常州企业网站制作公司,全国继续教育网怎么登录?  高性价比服务器租赁——企业级配置与24小时运维服务  如何在宝塔面板中创建新站点?  如何实现javascript表单验证_正则表达式有哪些实用技巧  利用 Google AI 进行 YouTube 视频 SEO 描述优化  如何快速完成中国万网建站详细流程?  如何用y主机助手快速搭建网站?  如何利用DOS批处理实现定时关机操作详解  网站制作软件免费下载安装,有哪些免费下载的软件网站?  Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】  googleplay官方入口在哪里_Google Play官方商店快速入口指南  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  高性能网站服务器配置指南:安全稳定与高效建站核心方案  深圳网站制作平台,深圳市做网站好的公司有哪些?  Swift中循环语句中的转移语句 break 和 continue  如何快速查询域名建站关键信息?  Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】  网页设计与网站制作内容,怎样注册网站?  香港服务器部署网站为何提示未备案?  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)