我的数据库表中的字段为creater_date
,为datetime,其值以2013-09-13 02:12:44
现在我必须将今天 - 日期(没时间)与creater_date
表格字段进行比较。
我在下面的代码中尝试过,但它显示错误:
function check_existing_User_weightStatus($u_id)
{
$this->load->database();
$this->load->helper('date');
$today = date('Y-m-d');
$array = array('creater_id' => $u_id,DATE('created_date') => $today);
$this->db->where($array);
$query = $this->db->get('user_weight');
if ($query->num_rows() > 0) {
return true;
} else {
return false;
}
}
获取错误:
A Database Error Occurred
Error Number: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '13 Sep 2013 02:48:27 +0530Asia/Calcuttaam30Asia/Calcutta13_13am30Asia/Calcutta '' at line 4
SELECT * FROM (`user_weight`) WHERE `creater_id` = '3235' AND `2013-09-13T02:48:27+05:30Fri,` 13 Sep 2013 02:48:27 +0530Asia/Calcuttaam30Asia/Calcutta13_13am30Asia/Calcutta '2013-09-13'
Filename: D:\xampp\htdocs\webapp\system\database\DB_driver.php
Line Number: 330
我不想与时间比较,我只想与今天约会。字段created_date
(例如2013-09-13 02:12:44)具有datetime
个数据类型和一些时间值。但我想只与日期进行比较
答案 0 :(得分:3)
问题是您的代码会生成错误的SQL语法,如错误显示。
我不是codeIgniter的专家,但这里是如何直接进行常规查询,这可能就是你想做的事情:
function check_existing_User_weightStatus($u_id)
{
$today = date('Y-m-d');
$this->load->database();
$query = $this->db->query("SELECT * FROM `user_weight` WHERE `creater_id` = '$u_id' AND DATE(`created_date`) = '$today'");
if ($query->num_rows() > 0) {
return true;
} else {
return false;
}
}
代码中的错误发生在此行
$array = array('creater_id' => $u_id,DATE('created_date') => $today);
我很确定这不是where子句的完成方式,因此您可以查找codeIgniter文档!找到正确的方法来做到这一点! (你没有告诉where子句使用AND
,OR
等等。运算符)
答案 1 :(得分:0)
您的数组语法错误。
<?php $array = array('creater_id'=>$u_id,'DATE(created_date)>=' =>$today); ?>