我在database.php
中创建了两个数据库连接,一个用于读取,这是我的本地主机,另一个用于编写“插入”,这是一个在线数据库。
但是当我想加入localhost数据库中的两个表“answers”和在线数据库中的“user”时,我遇到了这个问题。
function get_users() {
$write_db = $this->load->database('default', TRUE); /* database conection for localhost DB */
$read_db = $this->load->database('read', TRUE); /* database conection for online DB */
$read_db->select('*');
$read_db->from('ibitstore.user');
$write_db->join('english.answers','ibitstore.user.user_id = english.answers.user_id');
$query = $read_db->get();
if($query->num_rows() > 0)
return $query->result_array();
return array();
}
当我将$write_db
与join子句
$write_db->join('english.answers','ibitstore.user.user_id = english.answers.user_id');
从在线数据库中检索数据,但不从localhost数据库中检索数据,就像它忽略了我试图使用的连接:
$read_db->join('english.answers','ibitstore.user.user_id = english.answers.user_id');
然后我得到了这个SQL错误。看起来它认为“答案”表在在线数据库上:
A Database Error Occurred
错误号码:1142
对用户'user'@'49.32.197.240'的SELECT命令被拒绝为表'答案'
SELECT *
FROM (`ibitstore`.`user`)
JOIN `english`.`answers`
ON `ibitstore`.`user`.`user_id` = `english`.`answers`.`user_id`
文件名:C:\ xampp \ htdocs \ english \ system \ database \ DB_driver.php
行号:330
请帮助:(
答案 0 :(得分:0)
您一次只能连接一个数据库。您必须在一个数据库上运行查询,在第二个数据库上运行查询,然后在PHP中操作两者的结果。
答案 1 :(得分:0)
您可以运行一个SQL查询以在两个或多个不同的数据库上执行。包含每个表格。
如何从一个数据库获取数据然后使用您自己的逻辑来合并它们。