php 如何在CodeIgniter中执行SQL查询

shstlldc  于 2023-03-07  发布在  PHP
关注(0)|答案(6)|浏览(160)

我的查询出现问题,我需要连接来自不同数据库的两个表现在我的问题是如何执行查询。

请先访问此链接,以便您了解我的SQL语法为何如此

http://www.x-developer.com/php-scripts/sql-connecting-multiple-databases-in-a-single-query
我正在使用CodeIgniter,下面是我的查询外观的一个想法:

请注意我选择列的方式:数据库名.表格名.列名

$ENROLLEES = $this->load->database('ENROLLEES', TRUE);
$ACCOUNTS  = $this->load->database('ACCOUNTS', TRUE);

$SELECT    = "SELECT $ACCOUNTS.BALANCES_TABLE.IDNO, $ACCOUNTS.BALANCES_TABLE.balance";
$FROM      = "FROM $ACCOUNTS.BALANCES_TABLE";
$WHERE     = "$ACCOUNTS.BALANCES_TABLE.IDNO IN (SELECT $ENROLLEES.ENROLLEES_TABLE.IDNO FROM $ENROLLEES.ENROLLEES_TABLE)";

$SQL       = $SELECT ." ". $FROM ." ". $WHERE;

主要问题:如何执行查询?

如果我们在代码Igniter中这样做:

$ENROLLEES->query($SQL); or $ACCOUNTS->query($SQL);

如果我有多个数据库,我该如何执行查询?我将在此处提供什么
一个月一个月

z31licg0

z31licg01#

$sql="Select * from my_table where 1";    
    $query = $this->db->query($sql);
    return $query->result_array();
jogvjijk

jogvjijk2#

如果数据库共享服务器,则需要一个对这两个数据库都具有权限的登录帐户,只需运行类似于以下操作的查询:

$query = $this->db->query("
SELECT t1.*, t2.id
FROM `database1`.`table1` AS t1, `database2`.`table2` AS t2
");

否则,我认为您可能必须分别运行这两个查询,然后再修复逻辑。

o7jaxewo

o7jaxewo3#

我明白@骚提到的:

$ENROLLEES = $this->load->database('ENROLLEES', TRUE);
$ACCOUNTS = $this->load->database('ACCOUNTS', TRUE);

CodeIgniter支持多个数据库。你需要像上面那样把两个数据库引用都保存在单独的变量中。到目前为止你是对的/正确的。

接下来,您需要按如下方式使用它们:

$ENROLLEES->query();
$ENROLLEES->result();

以及

$ACCOUNTS->query();
$ACCOUNTS->result();

而不是使用

$this->db->query();
$this->db->result();

请参阅以下内容以供参考:http://ellislab.com/codeigniter/user-guide/database/connecting.html

am46iovg

am46iovg4#

http://www.bsourcecode.com/codeigniter/codeigniter-select-query/

$query = $this->db->query("select * from tbl_user");

$query = $this->db->select("*");
            $this->db->from('table_name');
            $query=$this->db->get();
sf6xfgos

sf6xfgos5#

return $this->db->select('(CASE 
            enter code hereWHEN orderdetails.ProductID = 0   THEN dealmaster.deal_name
            WHEN orderdetails.DealID = 0 THEN products.name
            END) as product_name')
tv6aics1

tv6aics16#

$this-〉db-〉select('id,name,price,author,category,language,ISBN,publish_date ');

$this->db->from('tbl_books');

相关问题