Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 什么';s相当于$this->;db->;Codeigniter 4中的最后一个查询()?_Php_Codeigniter_Activerecord_Codeigniter 4 - Fatal编程技术网

Php 什么';s相当于$this->;db->;Codeigniter 4中的最后一个查询()?

Php 什么';s相当于$this->;db->;Codeigniter 4中的最后一个查询()?,php,codeigniter,activerecord,codeigniter-4,Php,Codeigniter,Activerecord,Codeigniter 4,我刚开始学习CodeIgniter4。我的查询总是生成NULL,我不知道为什么。如何像Codeigniter 3一样查看生成的SQL Select命令 在Codeigniter 3中,此命令执行以下任务: echo $this->db->last_query(); 这是我在Codeigniter 4中的控制器代码,我需要它来获取生成的查询: $cityModel = new CityModel(); $cities = $cityModel ->select('cit

我刚开始学习CodeIgniter4。我的查询总是生成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());
在CI 4中,参考

您可以使用
getLastQuery()
作为

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

您可以使用getCompiledSelect,它将返回查询选择命令

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

这将显示最终查询:

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

美元是多少?控制器中未定义它。“我的查询始终生成NULL”?也许
县.名称
应该是
国家.名称
。“什么是$db?它没有在控制器中定义”?您可以这样定义它:
$db=$this->db在您的情况下,它将是$cityModel->getCompiledSelect();它附加了$this->db->getCompiledSelect(),谢谢。这成功了!请编辑您的答案。那我就接受了