我有关于codeigniters db-> get()的问题。我有功能sql查询,当我“手动”传递给db时,我得到结果,但是当我使用codeigniter时,我得到空结果。几乎相同的查询,但与喜欢而不是在哪里工作。
SQL是:
SELECT se.Id, se.Name, se.Alias, sy.Name as System, os.Name as Os, ac.Name as Access, se.Description
FROM cdl_server se
INNER JOIN cdl_system sy on sy.Id = se.System
INNER JOIN cdl_os os on os.Id = se.Os
INNER JOIN cdl_access ac on ac.Id = se.Access
WHERE se.Id = 1
代码如下所示:
$this->db->select(
'se.Id, se.Name, se.Alias, ' .
'sy.Name as System, os.Name as Os, ac.Name as Access, ' .
'se.Description',
FALSE);
$this->db->from('cdl_server se');
$this->db->join('cdl_system sy', 'sy.Id = se.System' ,'inner', FALSE);
$this->db->join('cdl_os os', 'os.Id = se.Os' ,'inner', FALSE);
$this->db->join('cdl_access ac', 'ac.Id = se.Access' ,'inner', FALSE);
$this->db->where('se.Id', $id, FALSE);
$this->db->get();
编辑: 我用它像: $ query = $ this-> db-> get(); return $ query-> result();
当我在将sql查询发送到数据库之前对其进行var_dump时,我得到了这个:
string(264) "SELECT se.Id, se.Name, se.Alias, sy.Name as System, os.Name as Os, ac.Name as Access, se.Description FROM cdl_server se INNER JOIN cdl_system sy ON sy.Id = se.System INNER JOIN cdl_os os ON os.Id = se.Os INNER JOIN cdl_access ac ON ac.Id = se.Access WHERE se.Id =1"
但是结果总是空的,即使我复制上面的内容并尝试直接询问db,我得到了我需要的结果。
有谁知道可能导致它的原因?
答案 0 :(得分:4)
如果你想获得结果,你必须使用row()或result()函数。
$this->db->get()->result();