【发布时间】:2017-05-05 11:45:07
【问题描述】:
我有这个运行良好的 PHP IF 语句:
if(EMPTY($_POST['review_date'])){
$review_date = NULL;
}
else {
$review_date = $_POST['review_date'];
}
当我将变量传递给 sqlsrv_query 时,问题就开始了:
sqlsrv_query($connect,"UPDATE goals SET review_date='$review_date' WHERE id='$department'") or die(sqlsrv_errors());
在 IF 语句为 TRUE 的情况下,review_date 单元格中的值显示为 1900-01-01,而不是 NULL。
如果我尝试在 IF 语句中为 NULL 值加上引号,我会收到以下错误:
注意:数组到字符串的转换 C:\xampp\htdocs\project\edit.php 上 第 30 行
如果 NULL 直接插入到查询中,它会按原样执行。
目标表中的列属性已启用 Allow Nulls 并且默认值设置为 (NULL)。
快速解决了其他问题,但没有真正得到任何结果。
我在这里做错了什么?
更新 1:
根据要求,这里是 HTML 代码:
<form method="POST" action="edit.php">
Review date <i>(optional)</i>: <input type="date" name="review_date" value="" placeholder="dd/mm/yyyy" >
<p><button type="submit">Save</button></p>
</form>
关于 var_dumps:
var_dump($review_date);
返回: NULL
var_dump($department);
返回: string(2) "36"
var_dump(sqlsrv_query($connect,"UPDATE goals SET review_date='$review_date' WHERE id='$department'"));
返回:资源(7)类型(SQL Server 语句)
【问题讨论】:
-
已经有一个类似的帖子回答了这个问题:stackoverflow.com/questions/17784390/…
-
该列是否有默认值,例如当前日期,或者可以接受 NULL 值?还要检查是否有触发事件。
-
您确实需要检查您的数据库架构。
-
@RenéHoffmann 可能是重复的,但如果我在上面对他们的评论是正在发生的事情,那么该重复将不适用。如果 OP 接受其中一个答案,那么我将使用您标记为的副本关闭它。他们需要发布他们的数据库架构。
标签: php sql sql-server null sqlsrv