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
如何在codeigniter活动记录中正确使用mysql MONTH()和YEAR()_Mysql_Codeigniter - Fatal编程技术网

如何在codeigniter活动记录中正确使用mysql MONTH()和YEAR()

如何在codeigniter活动记录中正确使用mysql MONTH()和YEAR(),mysql,codeigniter,Mysql,Codeigniter,我使用Codeigniter活动记录类试图获取数据类型为DATE的列的月份和年份部分 $this->db->where('mo', 'MONTH(so_date)'); $this->db->where('yr', 'YEAR(so_date)'); 上面的代码给了我这个。月份()和年份()用单引号括起来 SELECT * FROM mytbl WHERE `mo` = 'MONTH(so_date)' AND `yr` = 'YEAR(so_date)' //so

我使用Codeigniter活动记录类试图获取数据类型为DATE的列的月份和年份部分

$this->db->where('mo', 'MONTH(so_date)');
$this->db->where('yr', 'YEAR(so_date)');
上面的代码给了我这个。月份()和年份()用单引号括起来

SELECT *
FROM mytbl 
WHERE `mo` = 'MONTH(so_date)'
AND `yr` = 'YEAR(so_date)'

//so_date looks like this : 2013-04-15
我在这里做错了什么,或者为了不得到引号,我应该修改什么?当我删除引号并尝试在PHPMYADMIN中运行它时,查询会给出我想要的结果

来自

$this->db->where()
接受可选的第三个参数

如果您将其设置为FALSE,CodeIgniter将不尝试保护带有反勾号的字段或表名

$this->db->where('MATCH (field) AGAINST ("value")', NULL, FALSE);
所以你可以这样做:

$this->db->where('mo', 'MONTH(so_date)' , FALSE);

so\u date
是日期字段的名称,还是传递给查询的变量?如果是后者,那么它应该看起来像
$this->db->where('mo','MONTH('.$so_date')
$this->db->where('mo = MONTH(so_date)');