dongshenchi5364 2014-02-19 10:51
浏览 89
已采纳

在MySQL中将日期POST到datetime的正确方法

I have created a form that sends data to a database, all fields are working except date, i assume it is to do with the format but i am unsure how to go about it?

HTML

<dt>Date of Purchase</dt>
        <dd>
            <select id="date_of_purchase" name="entry[date_of_purchase]">
            <option value="">Month</option>
            <option value="Jan">Jan</option>
            <option value="Feb">Feb</option>
            <option value="Mar">Mar</option>
            </select>
            <select id="date_of_purchase" name="entry[date_of_purchase]">
            <option value="">Day</option>
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            </select>
            <select id="date_of_purchase" name="entry[date_of_purchase]">
            <option value="">Year</option>
            <option value="2013">2013</option>
            <option value="2014">2014</option>
            <option value="2015">2015</option>
            <option value="2016">2016</option>
            </select>
    </dd>

PHP

$stmt = DB::query(Database::INSERT, 'INSERT INTO `registration` (`first_name`, `last_name`, `date_of_purchase`) VALUES (:first_name, :last_name, :date_of_purchase)');                  

$stmt->param(':first_name', $post['first_name']);
$stmt->param(':last_name', $post['last_name']);
$stmt->param(':date_of_purchase', $post['date_of_purchase']);
  • 写回答

3条回答 默认 最新

  • douduan7295 2014-02-19 11:01
    关注

    you should use different names for fields

    <dt>Date of Purchase</dt>
            <dd>
                <select id="month_of_purchase" name="month_of_purchase">
                <option value="">Month</option>
                <option value="Jan">Jan</option>
                <option value="Feb">Feb</option>
                <option value="Mar">Mar</option>
                </select>
                <select id="day_of_purchase" name="day_of_purchase">
                <option value="">Day</option>
                <option value="1">1</option>
                <option value="2">2</option>
                <option value="3">3</option>
                <option value="4">4</option>
                </select>
                <select id="year_of_purchase" name="year_of_purchase">
                <option value="">Year</option>
                <option value="2013">2013</option>
                <option value="2014">2014</option>
                <option value="2015">2015</option>
                <option value="2016">2016</option>
                </select>
        </dd>
    

    and then construct date as

    $stmt->param(':date_of_purchase', sprintf("%d-%d-%d", $post['day_of_purchase'], $post['month_of_purchase'], $post['year_of_purchase']));
    

    (i assume that $post['year_of_purchase'] is the same as $_POST['year_of_purchase'])

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 linux驱动,linux应用,多线程
  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助