我刚刚开始学习Codeigniter4。我的查询始终生成NULL,但我不知道为什么。如何像Codeigniter 3一样看到生成的SQL Select命令?
在Codeigniter 3中,此命令可以完成此工作:
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());
您可以使用getCompiledSelect它将返回查询SELECT命令。
$sql = $cityModel->getCompiledSelect();
echo $sql;
什么是$ builder?在我的代码中未定义
在您的情况下,它将是$ cityModel-> getCompiledSelect(); 它附加了$ this-> db-> getCompiledSelect()
谢谢。这工作了!请修改您的答案。那我就接受
欢迎完成编辑。