日期未插入数据库中的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);
答案 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);