codeigniter项目需配置database.php并启用自动加载数据库类才能连接mysql。修改application/config/database.php中的hostname、username、password、database及dbdriver;在autoload.php中将'database'加入libraries;最后通过var_dump($this->db->conn_id)等方法验证连接成功。

要在CodeIgniter项目中让PHP后端真正读写MySQL数据,必须先让框架识别并建立到数据库的稳定连接,否则所有模型查询都会报错“Database not connected”。
修改database.php配置文件
打开application/config/database.php文件,找到以$db['default'] = array(开头的数组定义块。
把hostname设为你的MySQL服务地址(本地开发通常填localhost或127.0.0.1)→把username和password换成你MySQL的实际账号密码→把database填成已创建好的库名(比如myapp_db)。
【database名称必须提前在MySQL里手动建好,CodeIgniter不会自动创建数据库】如果填了一个不存在的库名,后续加载数据库时会直接抛出“Unknown database”错误且无法继续。
确认dbdriver值是mysql或mysqli(CI3推荐mysqli,CI4默认mysql)→保存文件。
启用自动加载数据库类
打开application/config/autoload.php,找到$autoload['libraries'] = array();这一行。
MySQL 9.6.0是面向Linux平台的2026年创新版本,核心架构迎来重大革新。其将外键约束与级联操作从InnoDB引擎层上移至SQL层,确保所有数据变更均被完整记录至Binlog,彻底解决了CDC(变更数据捕获)与主从复制中的数据不一致难题。此外,该版本引入container_aware启动选项以原生适配容器环境,并对审计日志进行了组件化重构,为追求极致数据一致性与云原生体验的开发者提供了全新选择。
把'database'加进去,变成:$autoload['libraries'] = array('database');。
这一步做完后,所有控制器、模型里都能直接用$this->db调用数据库对象,不用每次手动$this->load->database()。
验证连接是否生效
方法一:在任意控制器的某个方法里写一行代码:var_dump($this->db->conn_id); → 访问对应URL,如果输出一个resource类型(如resource #123),说明连接成功。
方法二:在控制器中执行简单查询:$query = $this->db->query("SELECT 1 as test"); echo $query->row()->test; → 页面显示1即通。
方法三:故意把database.php里的密码改错 → 刷新页面出现Unable to connect to your database server错误,反过来证明原配置是有效的。










