Php 如何在CI中从mysql中查找月份数据

Php 如何在CI中从mysql中查找月份数据,php,codeigniter-3,Php,Codeigniter 3,只是一个简短的问题, 我想这样形成查询 SELECT * FROM users WHERE MONTH( `birthday` ) = MONTH( '1999/05/19' ) 现在,在我的PHP函数中,我想执行相同的操作,但我从post变量中得到了这个结果,在形成查询后,我的输出如下所示: SELECT * FROM `users` WHERE MONTH(birthday) = 'MONTH(\"1999-05-19\")' 我想从代码中删除\。 我的代码如下: $birthday

只是一个简短的问题, 我想这样形成查询

SELECT *
FROM users
WHERE MONTH( `birthday` ) = MONTH( '1999/05/19' ) 
现在,在我的PHP函数中,我想执行相同的操作,但我从post变量中得到了这个结果,在形成查询后,我的输出如下所示:

SELECT *
FROM `users`
WHERE MONTH(birthday) = 'MONTH(\"1999-05-19\")'
我想从代码中删除
\
。 我的代码如下:

$birthday = $this->input->post('birthday');
$where['MONTH(birthday)'] = 'MONTH('.'"'.$birthday.'"'.')';
$result = $this->User_model->getAnyData($where);

有人能告诉我哪里出了问题吗?

使用下面给出的方法可能会对您有所帮助

$birthday = $this->input->post('birthday'); 
$where['MONTH(birthday)'] = "MONTH(".$birthday.")";
$result = $this->User_model->getAnyData($where);

使用下面给出的方法可能会对您有所帮助

$birthday = $this->input->post('birthday'); 
$where['MONTH(birthday)'] = "MONTH(".$birthday.")";
$result = $this->User_model->getAnyData($where);

如果发布的数据包含反斜杠,请使用PHP的
stripslashes()
删除它们:。

如果发布的数据包含反斜杠,请使用PHP的
stripslashes()
删除它们:。

这取决于您的字符串是用单引号还是双引号括起来的,这取决于您的操作:

<?php
$sql = 'SELECT *
FROM `users`
WHERE MONTH(birthday) = MONTH("1999-05-19")';

取决于字符串是用单引号还是双引号括起来,这取决于您的操作:

<?php
$sql = 'SELECT *
FROM `users`
WHERE MONTH(birthday) = MONTH("1999-05-19")';

要删除单引号,需要在活动记录中传递
false
参数

$this->db->where('MONTH(birthday)', 'MONTH(YOUR_DATA)', FALSE);
因此,查询如下所示:

$this->db->select('*');
$this->db->from('TABLE_NAME');
$this->db->where('MONTH(birthday)', 'MONTH(YOUR_DATA)', FALSE);

要删除单引号,需要在活动记录中传递
false
paramete

$this->db->where('MONTH(birthday)', 'MONTH(YOUR_DATA)', FALSE);
因此,查询如下所示:

$this->db->select('*');
$this->db->from('TABLE_NAME');
$this->db->where('MONTH(birthday)', 'MONTH(YOUR_DATA)', FALSE);

试试这个,只取一个月

 $birthday = $this->input->post('birthday');
            $birthday = DateTime::createFromFormat('d/m/Y', $birthday)->format('m');

            $where['MONTH(birthday)'] = $birthday;
            $result = $this->User_model->getAnyData($where);

SELECT * FROM users WHERE MONTH( `birthday` ) = '05 ';

试试这个,只取一个月

 $birthday = $this->input->post('birthday');
            $birthday = DateTime::createFromFormat('d/m/Y', $birthday)->format('m');

            $where['MONTH(birthday)'] = $birthday;
            $result = $this->User_model->getAnyData($where);

SELECT * FROM users WHERE MONTH( `birthday` ) = '05 ';


这个“选择月份”(1999-05-19)在MySQL中对我来说非常好。您遇到了什么样的错误?getAnyData函数是否完全不返回任何内容?如果是,您可以向我们展示正在执行的整个查询吗?它在响应中为我提供了空白数组。要查找错误,请获取php脚本正在执行的SQL查询,然后在MySQL Workbench中手动执行它(例如)。您可能会发现问题所在您是否检查了查询?它在MYSQL中给出o/p或notSame查询它并没有抛出错误,但并没有给我正确的结果这个“选择月份(“1999-05-19”);”在MYSQL中对我来说非常好。您遇到了什么样的错误?getAnyData函数是否完全不返回任何内容?如果是,您可以向我们展示正在执行的整个查询吗?它在响应中为我提供了空白数组。要查找错误,请获取php脚本正在执行的SQL查询,然后在MySQL Workbench中手动执行它(例如)。您可能会发现问题所在您是否检查了查询?它在MYSQL中给出o/p或notSame查询它并没有抛出错误,但没有给出正确的结果通过这样做它仍然给我斜杠通过这样做它仍然给我斜杠