与Amazon RDS的Codeigniter mysql数据库连接失败

时间:2015-01-28 07:56:59

标签: php mysql codeigniter amazon-rds

在搜索了几个小时和几个小时之后,我遇到了最糟糕的时间。

我与Amazon RDS凭据的连接是正确的,但是,我无法提取任何数据,并且我从以下内容中收到500错误。

我已经用最原始的编码来避免任何CI错误,在我的模型上我有:

class Foreclosure_model  extends CI_Model {
public function __construct() {
    parent::__construct();

     $this->db = $this->load->database('aws');

}

function get_sql_results($state,$county){

return $this->db->query("select State, County from foreclosure_properties     where State = 'CA' AND County = 'del norte'");
 }
}

然后在我的控制器上我有:

$this->data['listings'] = $this->foreclosure_model->get_sql_results($state,$county);

我的aws连接信息:

$db['aws']['hostname'] = 'XXXXXXXXXXXXX.us-west-2.rds.amazonaws.com';
$db['aws']['username'] = 'XXXXXXXX';
$db['aws']['password'] = 'XXXXXXXX';
$db['aws']['database'] = 'xxxxxx_xxxxxx';
$db['aws']['dbdriver'] = 'mysql';
$db['aws']['dbprefix'] = '';
$db['aws']['pconnect'] = TRUE;
$db['aws']['db_debug'] = TRUE;
$db['aws']['cache_on'] = FALSE;
$db['aws']['cachedir'] = '';
$db['aws']['char_set'] = 'utf8';
$db['aws']['dbcollat'] = 'utf8_general_ci';
$db['aws']['swap_pre'] = '';
$db['aws']['autoinit'] = TRUE;
$db['aws']['port'] = 3306;

我试过直接用Navicat做这个完全相同的连接来测试sql连接和查询,它运行成功。我似乎无法在Codeigniter中运行它。

在Codeigniter上运行时的结果是500错误。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

当您使用多个连接时,您需要传入第二个参数“TRUE”以返回数据库对象。

$this->db = $this->load->database('aws', TRUE);

如果你没有传递这个,那么就不会返回数据库对象,因此你不能调用任何函数(例如get(),query()等)。

您可以在此处详细了解多个连接: https://ellislab.com/codeigniter/user-guide/database/connecting.html

希望这会有所帮助 - 让我知道你是如何成功的!

注意:值得一提的是,如果不是将数据库分配给$ this-> db,您可以选择其他名称,例如$ this-> aws_db,这样可能会让事情变得更容易,因为您不会覆盖$ this->默认数据库的db对象。可能不是一个大问题,但随着项目的发展,可能会更容易进行故障排除。