从php将日期写入SQL,日期已更改
我有PHP5.4中的代码,可以在SQLServer2008R2中创建记录。PHP代码创建一个日期:从php将日期写入SQL,日期已更改,php,sql-server-2008,Php,Sql Server 2008,我有PHP5.4中的代码,可以在SQLServer2008R2中创建记录。PHP代码创建一个日期: $date = date("Y-m-d"); 哪些是: '2015-06-23' 该日期用于对SQL server的查询: $insert = 'INSERT INTO AdAttend (AdEnrollSchedID, AdEnrollID, Date, StartTime, Attend, Absent, unitType, Status, Comment, Excused, ModFl
$date = date("Y-m-d");
哪些是:
'2015-06-23'
该日期用于对SQL server的查询:
$insert = 'INSERT INTO AdAttend (AdEnrollSchedID, AdEnrollID, Date, StartTime, Attend, Absent, unitType, Status, Comment, Excused, ModFlag, UserID, DateAdded, DateLstMod, AdClassAttendID, Type)
VALUES ('.$AdEnrollSchedID.','.$AdEnrollID.','.$date.',\'1899-12-30 07:00:00.000\','.$present.','.$absent.',\'M\',\'A\',\''.$comment.'\',0,\'A\','.$instructorID.
','.$date.','.$date.','.$AdClassAttendID.',\'A\')';
这个问题似乎很有效。记录按其应有的方式插入。但是,当我检查表中的记录时,日期是:
'1905-06-23 00:00:00.000'
所以问题是,为什么将2015年改为1905年?在单引号中插入转义引号或使用双引号
$insert = 'INSERT INTO AdAttend (AdEnrollSchedID, AdEnrollID, Date, StartTime, Attend, Absent, unitType, Status, Comment, Excused, ModFlag, UserID, DateAdded, DateLstMod, AdClassAttendID, Type)
VALUES ('.$AdEnrollSchedID.','.$AdEnrollID.',\''.$date.'\',\'1899-12-30 07:00:00.000\','.$present.','.$absent.',\'M\',\'A\',\''.$comment.'\',0,\'A\','.$instructorID.
','.$date.','.$date.','.$AdClassAttendID.',\'A\')';
或
确保清理查询参数。用户输入只使用一个变量,而不是日期。变量是在使用前经过消毒的数字。即使如此,也不能帮助解决问题…
$date
是一个字符串,应该被引用-,\'.$date.'\',…
。例如,查看您的StartTime
,它也被引用。这并不是为了帮助解决问题,而是为了指出一个潜在的安全漏洞,每个人都可能会发现它有帮助。也就是说,我使用了非常类似的代码,而且效果很好。也许更详细的代码片段会有所帮助。请尝试包含“创建表”语法以及日期格式和insert之间的操作。@Sean-doh。。。你明白了。我应该抓住那个。。。。也许是时候休息一下了。您的第一个示例缺少连接所需的未替换引号。-<代码>\'.$date.'\'选项2,带双引号似乎不起作用。。选项1是的,但我要赞扬肖恩,因为他是第一个得到的。
$insert = 'INSERT INTO AdAttend (AdEnrollSchedID, AdEnrollID, Date, StartTime, Attend, Absent, unitType, Status, Comment, Excused, ModFlag, UserID, DateAdded, DateLstMod, AdClassAttendID, Type)
VALUES ('.$AdEnrollSchedID.','.$AdEnrollID.',"'.$date.'",\'1899-12-30 07:00:00.000\','.$present.','.$absent.',\'M\',\'A\',\''.$comment.'\',0,\'A\','.$instructorID.
','.$date.','.$date.','.$AdClassAttendID.',\'A\')';