我有关于 codeigniters db->get() 的问题。我有正常的sql查询,当我“手动”将它传递给db时,我得到了结果,但是当我使用codeigniter时,我得到了空结果。几乎相同的查询,但使用 like 而不是 where 有效。
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(); 返回$查询->结果();
当我在将 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 时,我得到了我需要的结果。
有谁知道可能是什么原因造成的?