Codeigniter 4 中的 $this->db->last_query() 相当于什么?



我刚开始学习Codeigniter 4。我的查询总是生成 NULL,我不知道为什么。如何像代码点火器 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()

在 CI 4 中,请参阅文档

您可以将getLastQuery()用作

$query = $db->getLastQuery();
echo (string)$query;

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

$this->db = ConfigDatabase::connect();
$data = $builder->get()->getResult();
echo $this->db->getLastQuery(); die;

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

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

以下代码将在 CI 4 中工作

$this->db->getLastQuery()->getQuery();

只需使用$this->db->getLastQuery();

这对我有用

$myModel = new MyModel();// your any model

$myModel->db->getLastQuery()->getQuery();

$this->db不能从控制器直接访问,但如果有任何Model实例,则可以对db对象具有完全访问权限。

在类中添加此代码

$db = ConfigDatabase::connect();
$query = $db->getLastQuery();
echo $query;

相关内容

  • 没有找到相关文章

最新更新