Php 什么';s相当于$this->;db->;Codeigniter 4中的最后一个查询()?
我刚开始学习CodeIgniter4。我的查询总是生成NULL,我不知道为什么。如何像Codeigniter 3一样查看生成的SQL Select命令 在Codeigniter 3中,此命令执行以下任务:Php 什么';s相当于$this->;db->;Codeigniter 4中的最后一个查询()?,php,codeigniter,activerecord,codeigniter-4,Php,Codeigniter,Activerecord,Codeigniter 4,我刚开始学习CodeIgniter4。我的查询总是生成NULL,我不知道为什么。如何像Codeigniter 3一样查看生成的SQL Select命令 在Codeigniter 3中,此命令执行以下任务: echo $this->db->last_query(); 这是我在Codeigniter 4中的控制器代码,我需要它来获取生成的查询: $cityModel = new CityModel(); $cities = $cityModel ->select('cit
echo $this->db->last_query();
这是我在Codeigniter 4中的控制器代码,我需要它来获取生成的查询:
$cityModel = new CityModel();
$cities = $cityModel
->select('city.name AS cityName')
->select('county.name AS countryName')
->select('province.name AS provinceName')
->join('province', 'city.province_id = province.id', 'left')
->join('county', 'city.county_id = county.id', 'left')
->result();
更新:
我尝试了此代码,但它返回了一个空字符串:
var_export((string)$cityModel->db->getLastQuery());
在CI 4中,参考
您可以使用getLastQuery()
作为
$query = $db->getLastQuery();
echo (string)$query;
您可以使用getCompiledSelect,它将返回查询选择命令
$sql = $cityModel->getCompiledSelect();
echo $sql;
这将显示最终查询:
$cityModel->getLastQuery()->getQuery()
美元是多少?控制器中未定义它。“我的查询始终生成NULL”?也许
县.名称
应该是国家.名称
。“什么是$db?它没有在控制器中定义”?您可以这样定义它:$db=$this->db代码>在您的情况下,它将是$cityModel->getCompiledSelect();它附加了$this->db->getCompiledSelect(),谢谢。这成功了!请编辑您的答案。那我就接受了