CodeIgniter怎么连接PostgreSQL数据库

陌浩吖_8238

陌浩吖_8238

2026-10-22

701人浏览

原创

codeigniter 连接 postgresql 的核心是正确配置驱动(ci3 用 postgre,ci4 用 pgsql)、启用 pgsql/pdo_pgsql 扩展、设置 hostname/username/password/database/port 等参数,并确保 postgresql 服务运行且用户有库访问权限。

codeigniter怎么连接postgresql数据库

CodeIgniter 连接 PostgreSQL 数据库,核心是正确配置数据库驱动和连接参数,并确保环境支持。它不像 MySQL 那样开箱即用,需要额外注意扩展、驱动名和部分参数兼容性。

确认 PHP 环境已启用 PostgreSQL 扩展

PostgreSQL 连接依赖 pgsql 或 pdo_pgsql 扩展(推荐 pgsql)。在终端运行:

php -m | grep -i "pgsql"

若无输出,需启用扩展:编辑 php.ini,取消注释或添加:

extension=pgsql
extension=pdo_pgsql

重启 Web 服务(如 Apache/Nginx)后生效。

配置 application/config/database.php

将 $db['default'] 的驱动设为 postgre(CI3)或 pgsql(CI4),其他关键项示例如下:

DrugBank 数据库
DrugBank 数据库

访问并分析来自 DrugBank 数据库的全面药物信息,包括药物属性、相互作用、靶点、通路、化学结构和药理学数据。用于药物数据、药物发现研究、药理学研究、药物-

下载
  • hostname:数据库服务器地址(如 localhost 或 IP)
  • username 和 password:PostgreSQL 用户凭据(注意:默认用户常为 postgres)
  • database:已创建的目标数据库名(不能是空字符串)
  • port:默认 5432,若自定义需显式指定(CI3 中需加到配置数组里)
  • dbdriver:"postgre"(CI3)、"pgsql"(CI4)
  • char_set 和 dbcollat:建议设为 "utf8" 和 "en_US.UTF-8" 或 "utf8mb4_general_ci"(实际以 PostgreSQL locale 为准)

CI3 示例片段:

$db['default'] = array(
    'dsn'      => '',
    'hostname' => 'localhost',
    'username' => 'postgres',
    'password' => 'your_password',
    'database' => 'myapp_db',
    'dbdriver' => 'postgre',
    'port'     => 5432,
    'char_set' => 'utf8',
    'dbcollat' => 'en_US.UTF-8',
    'pconnect' => FALSE,
    'db_debug' => (ENVIRONMENT !== 'production'),
    'cache_on' => FALSE,
    'cachedir' => '',
    'stricton' => FALSE,
    'failover' => array()
);

加载并测试连接

在控制器中手动加载数据库并验证是否连通:

// CI3 中
$this->load->database();

// 测试查询(非空结果说明连接有效)
$query = $this->db->query("SELECT version()");
if ($query && $query->num_rows() > 0) {
    echo $query->row()->version;
} else {
    show_error('PostgreSQL 连接失败,请检查配置与服务状态');
}

更稳妥的方式是捕获异常(尤其 CI4):

  • CI4 使用 try/catch 捕获 ConnectionException
  • 确保 PostgreSQL 服务正在运行:sudo systemctl status postgresql
  • 确认用户有权限访问目标数据库:psql -U postgres -d myapp_db

常见报错与处理

遇到连接失败时,优先排查以下几点:

  • "Unable to connect to your database server using the provided settings." → 检查 dbdriver 是否拼写为 postgre(CI3)或 pgsql(CI4),不是 postgresql
  • "FATAL: database "xxx" does not exist" → 数据库未创建,用 createdb -U postgres myapp_db 创建
  • "pg_connect(): Unable to connect..." → PHP 扩展未启用,或 PostgreSQL 未监听本地连接(检查 postgresql.conf 中 listen_addresses 和 pg_hba.conf 认证规则)
  • 中文乱码 → 确保 char_set 与数据库实际编码一致,且建库时指定了 UTF8 locale

不复杂但容易忽略。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

codeigniter 数据库

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
postgresql常用命令
postgresql常用命令

postgresql常用命令psql、createdb、dropdb、createuser、dropuser、\l、\c、\dt、\d table_name、\du、\i file_name、\e和\q等。本专题为大家提供postgresql相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.10

233

5

常用的数据库软件
常用的数据库软件

常用的数据库软件有MySQL、Oracle、SQL Server、PostgreSQL、MongoDB、Redis、Cassandra、Hadoop、Spark和Amazon DynamoDB。更多关于数据库软件的内容详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.02

4569

19

postgresql常用命令有哪些
postgresql常用命令有哪些

postgresql常用命令psql、createdb、dropdb、createuser、dropuser、\l、\c、\dt、\d table_name、\du、\i file_name、\e和\q等。更详细的postgresql常用命令,大家可以访问下面的文章。

2023.11.16

647

3

postgresql常用命令介绍
postgresql常用命令介绍

postgresql常用命令有\l、\d、\d5、\di、\ds、\dv、\df、\dn、\db、\dg、\dp、\c、\pset、show search_path、ALTER TABLE、INSERT INTO、UPDATE、DELETE FROM、SELECT等。想了解更多postgresql的相关内容,可以阅读本专题下面的文章。

2023.11.20

1396

6

PostgreSQL性能优化与索引调优实战
PostgreSQL性能优化与索引调优实战

本专题面向后端开发与数据库工程师,深入讲解 PostgreSQL 查询优化原理与索引机制。内容包括执行计划分析、常见索引类型对比、慢查询优化策略、事务隔离级别以及高并发场景下的性能调优技巧。通过实战案例解析,帮助开发者提升数据库响应速度与系统稳定性。

2026.02.12

480

19

PostgreSQL 性能优化与查询执行计划实战
PostgreSQL 性能优化与查询执行计划实战

本专题深入解析PostgreSQL性能优化核心,聚焦查询执行计划的实战应用。通过EXPLAIN命令精准定位瓶颈,结合索引策略、SQL改写与参数调优,系统提升查询效率。从执行计划解读到性能调优全流程,助你掌握数据库性能诊断与优化实战能力。

2026.05.08

150

10

PostgreSQL 在 Next.js / Go 全栈架构中的工程化实践
PostgreSQL 在 Next.js / Go 全栈架构中的工程化实践

本文详解如何利用Next.js(搭配Drizzle ORM)与Go后端构建高性能应用,充分发挥PG在JSONB非结构化存储与pgvector向量检索上的优势。从数据建模到Docker容器化部署,打造支持AI时代的“One Database”工程化解决方案。

2026.05.08

901

10

PostgreSQL高级特性、内核机制与现代数据架构
PostgreSQL高级特性、内核机制与现代数据架构

本专题从MVCC并发控制与WAL日志等内核机制出发,详解JSONB、PostGIS及pgvector等高级特性。探讨如何利用单一引擎支撑关系型、向量及图数据等现代数据架构需求,助您掌握构建高并发、智能化应用的核心技术。

2026.05.08

244

10

PHP CodeIgniter框架
PHP CodeIgniter框架

本专题专注于 PHP 轻量级框架 CodeIgniter 的学习与应用,系统讲解 MVC 模型、路由与控制器、数据库操作、表单验证、安全机制以及 REST API 开发。通过博客系统、内容管理平台和小型电商等实战项目,帮助学员快速掌握 CodeIgniter 的开发方法与实践技能。

2025.08.28

3699

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程