开发学院

您的位置:首页>技术文章>正文

技术文章

在Codeigniter4中跟$this->db->last_query()功能一样的函数是什么?

开发学院2022-05-09 19:16:45
我刚开始接触Codeigniter4。我的查询总是生成NULL,我不知道为什么。如何才能像Codeigniter3一样看到生成的SQL Select命令?

  我刚开始接触Codeigniter4。我的查询总是生成NULL,我不知道为什么。如何才能像Codeigniter3一样看到生成的SQL Select命令?

  在Codeigniter3中,该命令完成以下工作:

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());

方案1

  你可以使用getCompiledSelect它将返回查询选择命令。

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

方案2

  尝试使用下面的方法,它将返回最后执行的SQL语句。

$cityModel->getLastQuery()->getQuery();