core/Loader.php 中的数据库错误 -- postgresql + codeigniter

Posted

技术标签:

【中文标题】core/Loader.php 中的数据库错误 -- postgresql + codeigniter【英文标题】:Database error in core/Loader.php -- postgresql + codeigniter 【发布时间】:2013-07-15 04:46:45 【问题描述】:

我收到以下错误:

Unable to connect to your database server using the provided settings.

Filename: core/Loader.php

Line Number: 346

我的 database.php 是:

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'usertest';
$db['default']['password'] = '';
$db['default']['database'] = 'usertest';
$db['default']['port']     = '5433';
$db['default']['dbdriver'] = 'postgre';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

什么是可能的解决方案。我不想 $db['default']['db_debug'] = FALSE; 即使这样做了,我仍然无法连接到数据库。

编辑: 把端口改成5432了,还是不行

【问题讨论】:

你确定 postgres 在端口 5433 上吗?从命令行尝试telnet localhost 5433,看看是否出现空白屏幕。 同样的问题,Posgres 的默认端口是 5432。 "postgre"?我认为你错过了一个 s 【参考方案1】:

试试:

$db['default']['pconnect'] = FALSE;
$db['default']['db_debug'] = FALSE;

【讨论】:

【参考方案2】:

某些数据库驱动程序(例如 PDO、PostgreSQL、Oracle、ODBC)可能 需要提供完整的 DSN 字符串。如果是这种情况,你 应该使用“dsn”配置设置,就好像您正在使用 驱动的底层原生 PHP 扩展,如下所示:

$db['default']['dsn'] = 'pgsql:host=localhost;port=5432;dbname=database_name';

from official documentation of codeigniter

【讨论】:

【参考方案3】:

设置Set $db['default']['pconnect'] = FALSE;并再次检查。

【讨论】:

【参考方案4】:

检查您的数据库驱动程序名称。我很确定它是“postgres”而不是“postgre”。

【讨论】:

以上是关于core/Loader.php 中的数据库错误 -- postgresql + codeigniter的主要内容,如果未能解决你的问题,请参考以下文章

Codeigniter 无法连接到外部 SQL Server

CI中的超级对象

数据库错误 - 仅在某些浏览器中

Codeigniter MY_loader 未加载

CI框架中自定义view文件夹位置

忽略数据库项目中的错误