【发布时间】:2013-08-26 16:45:30
【问题描述】:
当需要往mysql表中插入日期时,提示这个错误-
错误:您的 SQL 语法有错误;检查手册 对应于您的 MySQL 服务器版本,以便使用正确的语法 在第 2 行的 '','2013-09-11','1', NULL)' 附近
这是我的源代码:
if(isset($_POST['submitsub']))
{
$stuid = $_POST['stuid'];
$stuname = $_POST['stuname'];
$stuemail = $_POST['stuemail'];
$stumajor = $_POST['stumajor'];
$appdate = date("Y-m-d");
$appointment = $_POST['date'];
$subno = $_POST['subject'];
$appstatus = 1;
$tri = mysqli_fetch_assoc(mysqli_query($con,"SELECT this_tri FROM trimester"));
$sql = "INSERT INTO application_subject (app_no, tri_id, sub_id, stu_id, stu_name, stu_email, stu_major, app_date, appointment_date, app_status, app_remark)
VALUES (NULL,'$tri[this_tri]','$subno','$stuid','$stuname','$stuemail','$stumajor',$appdate','$appointment','$appstatus', NULL)";
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
echo'<script>alert("Your application has been submited") </script>';
ob_flush();
}
在我的mysql上,属性已经设置为日期了。
【问题讨论】:
-
一方面,您缺少
$appdate'之前的报价。另一方面 - 你正在使用 mysqli,那你为什么不使用准备好的语句? -
您对 sql 注入攻击持开放态度,请考虑使用参数化查询或至少在您的输入上调用 mysqli_real_escape_string。