【问题标题】:How do I insert a date into mysql table using jQuery?如何使用 jQuery 在 mysql 表中插入日期?
【发布时间】:2011-12-26 11:19:42
【问题描述】:

我正在使用 jQuery 中的 datetimepicker,当我从 datetimepicker 中选择一个日期时,它会以这种格式显示:

  11/10/2011 14:02

现在当我尝试像这样将它插入到我的 sql 表中时

INSERT INTO MYTABLE (date, name) values ('$_POST[datepicker]','$_POST[name]')

它说日期格式不正确。

有人可以帮我确定如何格式化这样的日期,以便它被 datetime() 字段接受吗?

谢谢

    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 '14:33:00,1,2,'Y')' at line 2

        $datetosave = date("Y-m-d H:i:s", strtotime($_POST[date]));

$insert_q = "INSERT INTO reservations (res_date, res_numofseats, user_id, rsvp)
                     VALUES ($datetosave,$_POST[cars],2,'Y')";

【问题讨论】:

    标签: php jquery mysql datetime


    【解决方案1】:

    使用YYYY-MM-DD HH:MM:SS 格式,例如:2011-11-10 14:02

    理想情况下,您希望将 jQuery 插件设置为以正确的格式输出。如果这不可行,您可以使用 PHP 的 strtotime()date() 函数解析日期,将其转换为正确的格式:

    echo date('Y-m-d H:i:s', strtotime('11/10/2011 14:02')); 
    // prints 2011-11-10 14:02:00
    

    参考:MySQL Manual on DATETIME

    【讨论】:

    • 要求一个关于如何修改 jquery 以放置正确格式的快速示例太过分了?或如何使用 strtotime()。
    • @user975582 你有相关插件的链接吗?
    • 为了扩展这个想法,mysql 列的正确格式是date ("Y-m-d H:i:s", $unixtime);
    • Panos's answer to this thread 展示了如何在 jQuery 中做到这一点
    • 我仍然无法得到它,请参阅上面的代码。如果我删除 14:00 的东西.. 它会保存所有零
    【解决方案2】:

    使用PHP的日期函数将其转换为MySQL的日期时间格式(YYYY-MM-DD HH:I:S)

    $mytime = date('Y-m-d H:i:s', strtotime('11/10/2011 14:02'));

    【讨论】:

      【解决方案3】:

      我认为问题在于插入的日期周围缺少引号:

      $insert_q = "INSERT INTO reservations (res_date, res_numofseats, user_id, rsvp)
      VALUES ($datetosave,$_POST[cars],2,'Y')";
      

      给你 VALUES 2011-11-10 14:33:00,1,2,'Y'

      在 $datetosave 周围添加刻度

      $insert_q = "INSERT INTO reservations (res_date, res_numofseats, user_id, rsvp)
      VALUES ('".$datetosave."',$_POST[cars],2,'Y')";
      

      【讨论】:

        【解决方案4】:

        这可能超出了您的问题范围,但您的代码容易受到 SQL 注入攻击。尝试始终使用数据库库的内置转义/引用方法或使用准备好的语句。不确定您使用的是什么库,所以这里的链接很少(我会粘贴更多,但 SE 不允许我这样做:)):

        http://php.net/manual/en/pdo.prepare.php

        http://php.net/manual/en/mysqli.real-escape-string.php

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-12-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-02-19
          • 2013-07-20
          相关资源
          最近更新 更多