【问题标题】:PHP MYSQL insert date syntaxPHP MYSQL 插入日期语法
【发布时间】: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。

标签: php mysql date format


【解决方案1】:

您在查询中的 $appdate 变量前缺少单引号。

【讨论】:

    【解决方案2】:

    您缺少以下引用:

    '$stumajor',$appdate','$appointment'
    

    应该是

    '$stumajor','$appdate','$appointment'
    

    【讨论】:

      【解决方案3】:

      您忘记了 $appdate' 之前的 ' 字符

      '$stumajor',$appdate'
      

      这应该是

      '$stumajor','$appdate'
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-09-20
        • 2012-08-20
        • 1970-01-01
        • 2011-07-20
        • 1970-01-01
        • 2015-12-04
        • 2016-05-24
        相关资源
        最近更新 更多