Codeigniter mysql db 连接与 Amazon RDS 失败


Codeigniter mysql db connection with Amazon RDS failing

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

我与 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 错误。

任何帮助将不胜感激。

由于使用多个连接,因此需要传入第二个参数"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 对象,这可能会使事情变得更容易。可能不是一个大问题,但随着项目的增长,可能会更容易进行故障排除。