4

我刚开始学习 Codeigniter 4。我的查询总是生成 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());
4

5 回答 5

8

这应该显示最终查询:

$cityModel->getLastQuery()->getQuery()
于 2020-04-30T11:32:45.303 回答
2

在 CI 4 参考文档

你可以getLastQuery()用作

$query = $db->getLastQuery();
echo (string)$query;
于 2020-01-31T08:52:06.223 回答
1

此代码将帮助您获取 codeigniter 4 中的最后一个查询。

 $this->db = \Config\Database::connect();
 $data = $builder->get()->getResult();
 echo $this->db->getLastQuery(); die;
于 2021-11-19T05:29:27.920 回答
1

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

$sql = $cityModel->getCompiledSelect();
echo $sql;
于 2020-01-31T11:55:01.540 回答
-1

在您的课程中添加此代码

$db = \Config\Database::connect();
$query = $db->getLastQuery();
echo $query;
于 2022-02-05T10:38:13.770 回答