首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP NULL vs 'NULL‘

PHP NULL vs 'NULL‘
EN

Stack Overflow用户
提问于 2013-05-09 04:45:07
回答 5查看 523关注 0票数 0

下面的代码打印出一个下拉框,默认字符串为--Select Status--,值为NULL。

代码语言:javascript
复制
print("<label>Overall Status Overwrite:</label>
       <select name='case_ov_status' class='case_ov_status'>
       <option selected='selected' value=NULL>--Select Status--</option>");

当表单提交后,它将调用一个函数,该函数将确定是否将dropdown框作为默认值,如果不是,我将更新SQL数据库。

然而,这就是我感到困惑的地方,尽管提交了一个NULL值,下面的if语句仍然会运行。

2小时后,我发现用if($case_ov_status != 'NULL')代替if($case_ov_status != NULL)解决了这个问题。

代码语言:javascript
复制
if($case_ov_status != NULL){ //Still ran despite != NULL.
                mysql_query("START TRANSACTION", $connection);
                $sql = "Update cases set status=".$case_ov_status." Where patientid='".$patientID."' and caseid='".mysql_real_escape_string($case)."'";
                $resultNew = mysql_query($sql, $connection);

这听起来可能非常基础,但有人能解释一下它是如何工作的吗?因为我还在学习..提前感谢!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-05-09 04:50:53

请阅读http://php.net/manual/en/language.types.null.php

在php中,NULL是一个表示未分配对象的特殊值。" NULL“是包含单词NULL的字符串文字,两者不同。然而,在PHP中,您可能会看到它会在相等的情况下处理一些类型。例如,"“== NULL为true。

您不能通过HTTP发送PHP空值,因为HTTP中的所有内容都是字符串。因此,即使您指定NULL作为值,表单实际上也会将"NULL“发送到服务器。

票数 3
EN

Stack Overflow用户

发布于 2013-05-09 04:48:16

value=NULL等同于value="NULL"。不能通过HTTP提交非字符串值。使用value="" (空字符串)代替value=NULL。这对php来说是错误的,就像NULL一样。

票数 1
EN

Stack Overflow用户

发布于 2013-05-09 04:48:27

所有输入始终表示为string数据。

你只需要用正确的值填充你的值,它不能是null类型,既不能是int,也不能是smth。

为您提供的可能解决方法:

如果需要整数,则

  • 将每个输入强制转换为整数。像$id = (int) $_GET['id'] ;
  • Use这样的函数,比如empty()。它将在"0"0null和其他一些应用程序上返回true。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16449858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档