Php 如何更新MSSQL上为空的日期值?
我正在创建一个提取用户信息的表单,用户可以根据需要更新他们的信息。表单上有两个日期字段,第二个字段是可选的。因此,当用户单击“更新”并且第二个日期字段为空时,在MSSQL数据库中,它会将日期字段更新为“01/01/1970”。我将PHP与MSSQL结合使用,因此在代码中我有:Php 如何更新MSSQL上为空的日期值?,php,sql-server,Php,Sql Server,我正在创建一个提取用户信息的表单,用户可以根据需要更新他们的信息。表单上有两个日期字段,第二个字段是可选的。因此,当用户单击“更新”并且第二个日期字段为空时,在MSSQL数据库中,它会将日期字段更新为“01/01/1970”。我将PHP与MSSQL结合使用,因此在代码中我有: if(isset($_POST['update']) { $date_two = $_POST['date_two']; if($date_two == "") $date_two == NUL
if(isset($_POST['update']) {
$date_two = $_POST['date_two'];
if($date_two == "")
$date_two == NULL;
else
$date_two = date("Y-m-d", strtotime($date_two) );
UPDATE table SET date_two = CAST('$date_two' as DATE2);
}
结果条目为1970年1月1日,而不是空值。您应该检查输入日期值是否为空字符串(“”),并管理为空值,因为如果您的var值不为空(也是空字符串) 更新将生成一个日期值
UPDATE table SET date_two = (case when '$date_two' = '' then NULL
else CAST('$date_two' as DATE2)
end);
无论如何,您不应该在sql命令中使用PHPVAR,因为您在rusk进行sqlinjection。。对数据库驱动程序FIO或准备好的命令和绑定参数进行测试 @Jdeleon。。答案在案例条件周围更新为()