在Codeigniter 4中,$this->db->last_query()的等价物是什么?

jjjwad0x  于 2022-12-06  发布在  其他
关注(0)|答案(7)|浏览(151)

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

mzmfm0qo1#

此时应显示最终查询:

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

tct7dpnv2#

在CI 4中,参考Doc
您可以使用getLastQuery()作为

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

igetnqfo3#

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

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

2j4z5cfb4#

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

$this->db = \Config\Database::connect();
 $data = $builder->get()->getResult();
 echo $this->db->getLastQuery(); die;
ikfrs5lh

ikfrs5lh5#

以下代码将在CI 4中工作

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

zbwhf8kr6#

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

mcdcgff0

mcdcgff07#

将此代码添加到类中

$db = \Config\Database::connect();
$query = $db->getLastQuery();
echo $query;

相关问题