mqsql中的data类型高手来帮忙解决一下

来源:百度知道 编辑:UC知道 时间:2024/06/13 18:37:28
自己做的数据库,在测试时提交注册信息时如果把不填出生日期就插不进去记录
创建数据库时的代码
create table member(
id int(11) not null auto_increment primary key,
groupid tinyint(3) not null default '0',
name varchar(50) not null default '',
password varchar(50) not null default '',
email varchar(50) not null default '',
real_name varchar(50),
sex bit,
birthday date not null default '0000-00-00',//就是这了
school varchar(50),
no_of_post smallint(6) not null default '0',
integral int(11) not null default'0'
)
我把我紧有的25分全部贡献了(系统只让贡献20)。希望高手能帮我解决!小弟急呀!
下面是register.php:
<?php
......前面是连接数据库写不下就省了
$name = $_POST["name"];
$password = md5(trim($_POST["password"]));
$email =md5($_POST["email"]);
$groupid = 1; //默认用户等级:1为注册会员,2为管理员
$real_name = $_POST["real_name"]; //默认真实姓名,登陆后自己修改吧
$no_of_post = 0; 

是不是需要 to_date('0000-00-00','yyyy-mm-dd')

birthday 字段是Not NULL不允许空的
如果不需要必填的话,就改为允许空吧
MySQL语法如下:
ALTER TABLE Table MODIFY COLUMN birthday DATETIME NULL ;

或者设置默认值为一个正确的日期,比如1900-01-01
ALTER TABLE Table MODIFY COLUMN birthday DATETIME NOT NULL DEFAULT '1900-01-01';

MS SQL语法如下:
ALTER TABLE [Table] ADD CONSTRAINT
DF_sc_birthday DEFAULT '1900-01-01' FOR birthday

看你建表语句注释的那一行:

birthday date not null default '0000-00-00',

如果你想达到目标,就不要给birthday默认值了,你给了默认值后,如果插入数据时,用户没有提供出生日期,会自动以这个默认值填充,去除默认值的语法:

alter table member alter birthday drop default;