dth42345 2014-01-10 00:18
浏览 58
已采纳

将日期插入数据库

I'm trying to insert a date of birth into the database just one table but it's inserting 0000-00-00. I have a form that takes a date input or where <input type="date">. My insert command is:

   if (($myname = $_GET['your_name']) && ($phone = $_GET['phone']) && 
      ($dob = date('Y-m-d', strtotime($_GET['dob'])))) {
   $command = "INSERT INTO form_data (id, name, phone, dob) 
              VALUES ('', '".$db->real_escape_string($myname)."', 
              '".$db->real_escape_string($phone)."', '".$db->$dob."')";

My script works except the $dob. How do you handle an HTML5 input "date" input type into the database correctly? (I searched but didn't seem to work when I tried their suggestions here).

  • 写回答

3条回答 默认 最新

  • dqc22586 2014-01-10 00:31
    关注

    You assign date('Y-m-d', strtotime($_GET['dob']) to $dob, but later you try to reference it as $db->$dob. What you probably want it so to handle it just like the other variables and use $db->real_escape_string($dob):

    $command = "INSERT INTO form_data (id, name, phone, dob) 
      VALUES ('', '".$db->real_escape_string($myname)."', 
      '".$db->real_escape_string($phone)."', '".$db->real_escape_string($dob)."')";
    

    To make it more readable, I'd use sprintf though.

    $command = sprintf("INSERT INTO form_data (id, name, phone, dob) VALUES ('', '%s',  '%s', '%s')",
      $db->real_escape_string($myname),
      $db->real_escape_string($phone),
      $db->real_escape_string($dob));
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 远程桌面文档内容复制粘贴,格式会变化
  • ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题