【发布时间】: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。至于语言,很酷。fim和fin与许多源自拉丁语的语言密切相关,这让我觉得这就是它的意思。 ;-)
标签: php mysql sql datepicker