我的每个数据库表都有一个已定义的常量。
define('QTABLE','questions');
define('ATABLE','answers');
我想使用通常引用的列“xid”来加入这些表。
如果我引用了表的实际名称,我就会这样做。
$this->db->from('questions');
$this->db->select('qcount,answers.xid,answers.aval');
$this->db->join('answers','questions.xid=answers.xid');
$gquery=$this->db->get();
但我不想直接在代码中引用表名,以防我们稍后需要重命名。如何使用Codeigniter的Active Records正确使用已定义的常量?我怀疑它是关于使用正确的单/双引号进行转义。
我尝试了以下内容,但绝对不起作用!
$this->db->from(Q-TABLE);
$this->db->select('qcount,ATABLE.xid,ATABLE.aval'); <----PROBLEM
$this->db->join(ATABLE,'QTABLE.xid=ATABLE.xid');<------PROBLEM
$gquery=$this->db->get();
你可以告诉我通往光明的道路吗?
mmiz
答案 0 :(得分:0)
在你的模特中
function __construct()
{
// Initialization of class
parent::__construct();
define('QTABLE','questions'); // define constant here in constructor
define('ATABLE','answers'); // define constant here in constructor
}
尝试像这样的查询
$this->db->select('qcount,'.ATABLE.'.xid,'.ATABLE.'.aval');
$this->db->from(QTABLE);
$this->db->join(ATABLE,QTABLE.'.xid='.ATABLE.'.xid');
$query=$this->db->get();
echo $this->db->last_query(); exit;