将日期插入数据库时​​出现SQL语法错误(framework:codeigniter)

时间:2014-05-22 07:49:28

标签: mysql codeigniter date datetime mysql-error-1064

我正在尝试在MySQL数据库中插入日期,但是我收到了SQL语法错误,这是我的代码(关于日期):

$h = "2";
$hm = $h * 60; 
$ms = $hm * 60;
$data['date'] = gmdate("Y-m-d g:i:s", time()+($ms));
$thismoment = $data['date'];

$this->db->query('INSERT INTO gotcha_user_task (gotcha_user_id, task_id, target_gotcha_user_id, date) 
VALUES ('.$gotchauserid.','.$notactivetask.','.$randleasttargetedvalue.','.$thismoment.') ');

这是我的错误:

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 '9:31:50)' at line 2
INSERT INTO gotcha_user_task (gotcha_user_id, task_id, target_gotcha_user_id, date) VALUES (6,4,7,2014-05-22 9:31:50)

我已经用phpMyAdmin手动添加了两行,因此我知道日期应该按照这个顺序放置YYYY-MM-DD HH-MM-SS(至少它们在表中的方式),因此我尝试过这个(因为我已经读过,作为其他人的解决方案)并没有帮助我(还)。我也尝试使用`'解决方案',因为第一部分和第二部分之间有一个空间,对我来说也没有帮助。

这是我的第一个“更大”的项目(它仍然很小^^),所以它可能是任何东西,因为我写的几乎所有东西都是我在这个项目上学到的东西。

2 个答案:

答案 0 :(得分:0)

您需要在$thismoment周围添加引号 试试这个:

$this->db->query('INSERT INTO gotcha_user_task (gotcha_user_id, task_id, target_gotcha_user_id, date) 
VALUES ('.$gotchauserid.','.$notactivetask.','.$randleasttargetedvalue.',"'.$thismoment.'") ');

答案 1 :(得分:0)

您的查询必须是:

$this->db->query('INSERT INTO 
      gotcha_user_task (gotcha_user_id, task_id, target_gotcha_user_id, date) 
VALUES ('.$gotchauserid.','.$notactivetask.','.$randleasttargetedvalue.',"'.$thismoment.'") ');

2014-05-22 9:31:50 这个值应该在配额标记中。这就是为什么它会给出错误。