温馨提示:本文翻译自stackoverflow.com,查看原文请点击:php - What's the equivalent of $this->db->last_query() in Codeigniter 4?
codeigniter php activerecord codeigniter-4

php - Codeigniter 4中的$ this-> db-> last_query()等价于什么?

发布于 2020-03-27 16:00:11

我刚刚开始学习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());

查看更多

查看更多

提问者
rostamiani
被浏览
73
Fawad Saboor 2020-02-07 18:05

您可以使用getCompiledSelect它将返回查询SELECT命令。

$sql = $cityModel->getCompiledSelect();
echo $sql;