2010-08-31 129 views
-2

我试图从表单中检索用户数据并将数据保存到数据库中。我试图检索下列数据: 1)名2)姓氏3)主要4)年将数据插入数据库

SQL语法:

CREATE TABLE `tblStudents` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `first_name` varchar(30) NOT NULL, 
    `last_name` varchar(50) NOT NULL, 
    `major` varchar(40) NOT NULL, 
    `year` date NOT NULL, 
    PRIMARY KEY (`id`) 
) 

我能够保存所有,但数据库中的年份为。现在,选择的年份不保存在数据库中。像这样:0000-00-00

在表格中,用户从下拉菜单中选择年份。

<select name="year" id="year"> 
     <option value="2010">2010-06-12</option> 
     <option value="2011">2011-06-12</option> 
     <option value="2012">2012-06-12</option> 
     <option value="2013">2013-06-12</option> 
     <option value="2014">2014-06-12</option> 

    </select> 

“年”列的数据类型是日期。我是否需要指定其他内容才能将日期保存到数据库中。

+0

您是否在任何地方收到异常? – Phil 2010-08-31 19:00:03

+0

您可以发布您用于插入的PHP/MySQL代码吗? – 2010-08-31 19:00:07

+0

这很荒谬的问“我做错了什么”,而不是提供关于你在做什么的信息 – 2010-08-31 19:00:46

回答

0

它可能取决于正在使用的特定数据库,但通常您将日期指定为文本,例如'2005-10-15'。所以,update mytable set somedate = '2010-10-15'将做的伎俩。

1

我将选项标签中的值从“2010”更改为“2010-06-12”,“2011-06-12”,2012-06-12“,”2013-06-12“... .etc ...等(年,月,日),并能够将这些值保存到数据库中。

<select name="year" id="year"> 
     <option value="2010-06-12">2010-06-12</option> 
     <option value="2011-06-12">2011-06-12</option> 
     <option value="2012-06-12">2012-06-12</option> 
     <option value="2013-06-12">2013-06-12</option> 
     <option value="2014-06-12">2014-06-12</option> 

    </select> 
+0

哦。那么没关系,那么。如果解释了为什么变更解决了问题......以及实际问题*是什么,这个答案会更有用。 ...就此而言,无论选择哪个日期,您的解决方案似乎都会插入同一年(2010年)。不太可能,这是正确的行为。 – 2010-08-31 19:06:34

+1

如果你想保存一个完整的日期与月份和日期,比你的解决方案就好。如果您只需要年份,并且月份和日期不重要(或者始终如此),请按照我提到的类型YEAR创建“年份”列。 – 2ndkauboy 2010-08-31 19:08:48

+0

@ Kau-Boy感谢您的建议。是的,所有的日期都是一样的。试图看看我是否能够将年 - 月 - 日保存到数据库中。如果我能做到这一点,那么我应该可以做到这一点 - 所以我只是复制和粘贴年 - 月日,但只改变了年,以节省时间。但现在,我知道一个作品... :)我会修复日期。但再次感谢。 – jc70 2010-08-31 19:17:00

0

如果你只是想保存一年你可以采取列类型YEAR(或者你可以采取小班(4))。

+0

感谢您的提示。我会记住这一点,如果我只想保存一年。 – jc70 2010-08-31 19:11:19

0

如果你只需要YEAR,我不加入一个模糊的年份和月份的你最后的答案一致。

我会建议是updat e您的table结构将列类型更新为YEAR