我刚刚开始学习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());
这应该显示最终的查询:
$cityModel->getLastQuery()->getQuery()
此代码将帮助您获取 codeigniter 4 中的最后一个查询。
$this->db = \Config\Database::connect();
$data = $builder->get()->getResult();
echo $this->db->getLastQuery(); die;
您可以使用 getCompiledSelect 它将返回查询 SELECT 命令。
$sql = $cityModel->getCompiledSelect();
echo $sql;
这对我有用
$myModel = new MyModel();// your any model
$myModel->db->getLastQuery()->getQuery();
$this->db
无法从控制器直接访问,但如果您有任何 Model
实例,那么您可以完全访问 db
对象。
以下代码将在 CI 4 中运行
$this->db->getLastQuery()->getQuery();
只需使用
$this->db->getLastQuery();
将此代码添加到您的班级中
$db = \Config\Database::connect();
$query = $db->getLastQuery();
echo $query;