我正在使用codeignitor框架和mysql进行数据库, 但我的问题是CodeIgniter标准代码查询没有返回与php myadmin相同的结果。
我的PHP代码是:
$this->db->select('e_s_i.id as mnxmnxmcv, e_s_i.description aswoieurowieur');
$this->db->where('t_b_z.zone_niscode', $nis_code);
$this->db->join('tb_bldginstallerdetails b_i_d','b_i_d.installerdetails_companyid = e_s_i.id', 'left');
$this->db->join('installer_zoning i_z', 'i_z.companyid = b_i_d.installerdetails_companyid', 'left');
$this->db->join('tb_bldgzone t_b_z', 'i_z.zone = t_b_z.zone_zone', 'left');
$query = $this->db->get('erit_service_installer e_s_i');
$this->print_pre($query->row_array());exit;
执行后,我的结果如下:
Array
(
[mnxmnxmcv] => 13
[aswoieurowieur] => Advanced Systems Communication Sdn Bhd
)
但是当从php打印我的sql查询时:
SELECT `e_s_i`.`id` as mnxmnxmcv,
`e_s_i`.`description` as aswoieurowieur
FROM (`erit_service_installer` e_s_i)
LEFT JOIN `tb_bldginstallerdetails` b_i_d ON `b_i_d`.`installerdetails_companyid` = `e_s_i`.`id`
LEFT JOIN `installer_zoning` i_z ON `i_z`.`companyid` = `b_i_d`.`installerdetails_companyid`
LEFT JOIN `tb_bldgzone` t_b_z ON `i_z`.`zone` = `t_b_z`.`zone_zone`
WHERE
`t_b_z`.`zone_niscode` = 'tifaw'
执行phpmyadmin结果输出不同:
mnxmnxmcv woieurowieur
41 Uniiii Streamiii Enterpriseq
请让我知道,如何获得相同的结果
谢谢
答案 0 :(得分:0)
MySql显然没有得到相同的查询。
首先在测试时通过在PHP中硬编码$ nis_code开始,所以你知道它与普通的sql查询中的相同。
您是从同一个数据库中选择还是冷却了您的环境?
如果您仍然获得不同的数据;删除所有左连接,只选择' master'表。一次添加一个连接,直到找到差异,并在可以确定错误时再次询问。