【问题标题】:my date inputs chosen with datepicker are not inserting into my database我用 datepicker 选择的日期输入没有插入到我的数据库中
【发布时间】:2014-04-29 23:08:52
【问题描述】:

我正在使用 PDO 进行插入,这对我来说似乎是正确的,并且插入正在工作。

但是 date_begin 和 date_end 信息没有插入,我的表在这个字段中接收到值:“0000-00-00 00:00:00.000000”。

我正在使用 datepicker 来选择日期。

你知道什么是错的吗?我没有收到任何错误或通知!

我用 pdo 插入:

$insertEvent = $pdo->prepare("INSERT INTO events (title, level, date_begin, date_end) VALUES (:title, :level, :date_begin, :date_end)");  
$insertEvent->bindValue(':title', $f['tile']);
$insertEvent->bindValue(':level', $f['level']);
$insertEvent->bindValue(':date_begin', $f['date_begin']);
$insertEvent->bindValue(':date_end', $f['date_end']);
$insertEvent->execute();          
   echo'Sucess';

如果我打印这些变量,它们有我在日期选择器中选择的正确数据:

echo $f['date_begin'];
echo $f['date_end'];

我的表格:

<form action="" method="post" enctype="multipart/form-data">


        <label>
            <span>Title:</span>
            <input type="text"  name="title" value="<?php if(isset($_POST['title'])) echo $f['title']; ?>" />
        </label>

        <label>
            <span class="data">Begin Date:</span>
            <input type="text" class="datepicker" name="date_begin" value="<?php if(isset($_POST['date_begin'])) echo $f['date_begin']; ?>" />
        </label>

        <label>
            <span>End Date:</span>
            <input type="text" class="datepicker" name="date_end" value="<?php if(isset($_POST['date_end'])) echo $f['date_end']; ?>" />
        </label>

         <label>
           <span>Select the level:</span>
            <select name="level">
            <option value="">Select the user level;</option>
            <option value="1">1</option>
            <option value="2">2</option>        
            </select>
        </label>

        <input type="submit" value="Insert" name="sendForm" />

    </form>

【问题讨论】:

  • 您的 :data_fim 与您要输入的内容不匹配,这似乎与 bindValue(':date_end', $f['date_end']); 相关,很可能应该是 (:title, :level, :date_begin, :date_end) - 在 @ 上报告错误987654321@ 会抓住这一点。 php.net/manual/en/pdo.error-handling.php
  • 感谢您的回答。但是我在这里做翻译,我忘了改变那个参数,对不起!但在我的例子中,我有正确的,现在我更新我的问题!
  • 不客气。我认为data fim 在某种语言中的意思是end date。它是哪种语言,很好奇?
  • 还要确保您的列是正确的类型。 DATETIME 或类似的。
  • 您很可能需要将列类型更改为DATETIME。至于语言,很酷。 fimfin 与许多源自拉丁语的语言密切相关,这让我觉得这就是它的意思。 ;-)

标签: php mysql sql datepicker


【解决方案1】:

它不适用于日期时间,日期选择器格式类似于“04/30/2014”,日期时间为“0000-00-00”。所以也许这真的是问题所在!

你需要切换它,所以它是 Y-M-D 而不是 M-D-Y

注意到 4x 0000 然后是另外 2x 00?你的日期正好相反。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-24
    • 2019-05-03
    • 2016-01-18
    • 2012-05-02
    • 1970-01-01
    • 2023-04-01
    • 2021-03-11
    • 2011-07-16
    相关资源
    最近更新 更多