Php 如何使用当前日期获取codeigniter上的数据?

Php 如何使用当前日期获取codeigniter上的数据?,php,mysql,codeigniter,Php,Mysql,Codeigniter,这是我在这里的第一个问题,所以要友善:) 我试图根据当前日期使用Codeigniter和MySQL显示数据 下面是我的模型函数 当我使用这种格式时,它可以工作: 公共函数get_tables(){ $this->db->where('date','2020-04-07'); $this->db->order_by('time','ASC'); $query=$this->db->get('tables'); 返回$query->result(); } 但是当我尝试使用CURDATE()函数时,

这是我在这里的第一个问题,所以要友善:)

我试图根据当前日期使用Codeigniter和MySQL显示数据

下面是我的模型函数

当我使用这种格式时,它可以工作:

公共函数get_tables(){
$this->db->where('date','2020-04-07');
$this->db->order_by('time','ASC');
$query=$this->db->get('tables');
返回$query->result();
}
但是当我尝试使用
CURDATE()
函数时,它在这一行显示了一个错误

公共函数get_tables(){
$this->db->where(日期格式('date','yyyyy-MM-DD'),'CURDATE()',TRUE);
$this->db->order_by('time','ASC');
$query=$this->db->get('tables');
返回$query->result();
}

我很高兴听到它为什么不起作用,欢迎提出任何改进建议。

您的
日期格式
呼叫错误。第一个参数必须是实际日期。不是字符串“date”。我认为你把PHP和MySQL混合在一起了

通过使用
date\u format
作为第二个参数,您可以使用PHP创建当前日期的字符串,并将其交给MySQL

公共函数get_tables(){
$this->db->where('date',date_格式(new DateTime(),'YYYY-MM-DD');
$this->db->order_by('time','ASC');
$query=$this->db->get('tables');
返回$query->result();
}
CURDATE()
是一个MySQL函数,我认为不可能将原始MySQL提供给
where()

编辑:Dum回答了这个问题。可以将
CURDATE()
与Codeigniter一起使用:

公共函数get_tables(){
$this->db->where('date','CURDATE()`,false);
$this->db->order_by('time','ASC');
$query=$this->db->get('tables');
返回$query->result();
}

您的
日期格式
呼叫错误。第一个参数必须是实际日期。不是字符串“date”。我认为你把PHP和MySQL混合在一起了

通过使用
date\u format
作为第二个参数,您可以使用PHP创建当前日期的字符串,并将其交给MySQL

公共函数get_tables(){
$this->db->where('date',date_格式(new DateTime(),'YYYY-MM-DD');
$this->db->order_by('time','ASC');
$query=$this->db->get('tables');
返回$query->result();
}
CURDATE()
是一个MySQL函数,我认为不可能将原始MySQL提供给
where()

编辑:Dum回答了这个问题。可以将
CURDATE()
与Codeigniter一起使用:

公共函数get_tables(){
$this->db->where('date','CURDATE()`,false);
$this->db->order_by('time','ASC');
$query=$this->db->get('tables');
返回$query->result();
}
使用日期()函数

使用date()函数

$this->db->where()接受可选的第三个参数。若您将其设置为FALSE,CodeIgniter将不会尝试保护您的字段或表名

所以,你应该使用

$this->db->where(date_format(new DateTime(),"YYYY-MM-DD"),'CURDATE()', FALSE);

$this->db->where()接受可选的第三个参数。若您将其设置为FALSE,CodeIgniter将不会尝试保护您的字段或表名

所以,你应该使用

$this->db->where(date_format(new DateTime(),"YYYY-MM-DD"),'CURDATE()', FALSE);

谢谢大家,我把你们所有的答案和这个答案结合起来:

成功了

发布基于当前日期显示数据库数据的my Model函数的最新版本:

公共函数get_tables() {

返回$query->result_array()


}谢谢大家,我把你们所有的答案和这个答案结合起来:

成功了

发布基于当前日期显示数据库数据的my Model函数的最新版本:

公共函数get_tables() {

返回$query->result_array()


}

这是否回答了您的问题?这回答了你的问题吗?
 $this->db->where('date =','DATE(CURDATE())',FALSE);
 $this->db->order_by('time', 'ASC');  
 $query=$this->db->get('tables');