日期没有插入mysql

时间:2014-09-18 11:09:47

标签: php mysql

日期未插入数据库中的login_date字段。当我在phpmyadmin

中运行sql查询时,它显示以下错误
  

1064 - 您的SQL语法出错;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   近   '' USER_ID'' login_date'' login_time'' logout_date'' logout_time')值(' 12'' 201'   在第1行

提前致谢。

代码:

$date=date("d/m/y", time());
$time=date("H:i:s",time());
$q = $_POST['id'];

$sql1="insert into entries('user_id','login_date','login_time','logout_date','logout_time')values('$q','$date','$time','$date','$time')";
$res1=mysql_query($sql1);

7 个答案:

答案 0 :(得分:2)

MySQL认为',它是一个字符串,但你想命名一个列。要么你只是删除那些单引号,要么使用反引号。

像这样:

$date=date("d/m/y", time());
$time=date("H:i:s",time());
$q = $_POST['id'];

$sql1="insert into entries(`user_id`, `login_date`, `login_time`, `logout_date`, `logout_time`)values('{$q}','{$date}','{$time}','{$date}','{$time}')";
$res1=mysql_query($sql1);

答案 1 :(得分:2)

这是因为您在列名称周围使用单引号'。列名不是字符串。

你应该不使用任何东西,或者最好使用反引号,`,就像这样:

$sql1 = <<< SQL
    INSERT INTO `entries` (
        `user_id`,
        `login_date`,
        `login_time`,
        `logout_date`,
        `logout_time`
    ) VALUES (
        '{$q}',
        '{$date}',
        '{$time}',
        '{$date}',
        '{$time}'
    )
SQL;

答案 2 :(得分:0)

由于我假设你的user_id列是一个整数,你应该从引号中取出$ q变量。出于某种原因,你只需要将字符串放在引号中。

答案 3 :(得分:0)

您的数据库不喜欢单引号中的列名,请尝试使用

`user_id`

而不是

'user_id'

答案 4 :(得分:0)

用此

替换你的行
$sql1="insert into entries(user_id,login_date,login_time,logout_date,logout_time) values('$q','$date','$time','$date','$time')";

不要为列名使用单引号。

答案 5 :(得分:0)

mysql的日期格式为Y-m-d,因此如果login_date的类型为date,则使用: -

类型日期时间的

$ date = date(&#34; Y-m-d&#34;)或$ date = date(&#34; Y-m-d H:i:s&#34;)

答案 6 :(得分:-1)

您的值用单引号括起来。使用反引号。

$res1 = mysql_query("INSERT INTO entries (`user_id`, `login_date`, `login_time`, `logout_date`, `logout_time`) 
             VALUES (
               '".mysql_real_escape_string($q)."',
               '".mysql_real_escape_string($date)."', 
               '".mysql_real_escape_string($time)."')");

$res1 = mysql_query($sql1);