我有一个试图将某些数据插入SQL Server 2008数据库的表单。表单具有获取当前日期/时间,然后将其插入数据库的功能,如下所示;
$now = date("Y-m-d H:i:s"); $q = "INSERT INTO ".TBL_USERS." ( username, password, userid, userlevel, email, created, updated, timestamp, fullname, avatar ) VALUES ( '$username', '$password', '0', $ulevel, '$email', '$now', '$now', $time, '$fullname', $avatar)";
但是,在提交表单时,报告的错误为;
警告:mssql_query()[function.mssql- query]:消息:无法将值NULL插入表’dbo.users’的’created’列中;列不允许为空。INSERT失败。
我们已经执行了echo $ q来显示试图插入的数据,并且确实显示了正确的日期时间(例如2009-10-28 15:43:00.000),. 000通常是由数据库添加的。
如果我在数据库中手动创建记录,则上面示例中的datetime将被接受。
想知道以前是否有人遇到过这个问题?
谢谢你。尼尔
尝试使用CURRENT_TIMESTAMP代替“ $ now”,如下所示:
$q = "INSERT INTO ".TBL_USERS." ( username, password, userid, userlevel, email, created, updated, timestamp, fullname, avatar ) VALUES ( '$username', '$password', '0', $ulevel, '$email', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, $time, '$fullname', $avatar)";