只是一个小问题, 我想像这样构建查询
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);
谁能告诉我哪里出错了?
答案 0 :(得分:1)
使用如下给出的帮助
$birthday = $this->input->post('birthday');
$where['MONTH(birthday)'] = "MONTH(".$birthday.")";
$result = $this->User_model->getAnyData($where);
答案 1 :(得分:1)
如果POSTed数据包含反斜杠,请使用PHP stripslashes()
删除它们:http://php.net/manual/en/function.stripslashes.php。
答案 2 :(得分:1)
取决于您的字符串是用单引号还是双引号括起来取决于您的操作:
<?php
$sql = 'SELECT *
FROM `users`
WHERE MONTH(birthday) = MONTH("1999-05-19")';
应该有效。也:
<?php
$sql = "SELECT *
FROM `users`
WHERE MONTH(birthday) = MONTH('1999-05-19')";
答案 3 :(得分:1)
要删除单引号,您需要在活动记录中传递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);
答案 4 :(得分:0)
尝试使用此功能,仅提取一个月。
$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 ';
答案 5 :(得分:0)
DISPLAY MONTH WISE DATA WITH PHP CODEIGNITER
path: tests/Project/Module/Business/Customer/ModelTest.php
namespace: Project\Module\Business\Customer