我想阻止空值进入MySQL数据库
我正在使用以下内容,但出于某种原因,它让空值通过......
if (trim($var)= '' || !isset($var)){
header("Location:page.php?er=novariablel");
}
else {
...insert into database
}
注意,有很多复杂的东西设置了var的值,这就是为什么我想同时拥有=''
和!isset
的原因,因为可能是这种情况。
我是否遗漏了带有or语句的内容,即如果两者都为真则评估为false。或者我做错了什么?
答案 0 :(得分:4)
您=
声明中的Equal Comparison Operator内缺少if
。尝试:
if (trim($var) == '' || !isset($var)){
答案 1 :(得分:2)
尝试:
if (!isset($var) || empty(trim($var))){
empty()
是检查变量是否没有值的更好方法。请记住,以下内容将返回true:
以下内容被认为是空的:
答案 2 :(得分:0)
尝试:
$var = trim($var);
if (!empty($var)){
//not empty
}
答案 3 :(得分:0)
尝试
if (strlen(trim($var)))==0
答案 4 :(得分:0)
您还应该在数据库表属性中设置一个约束,它不接受NULL值。那么您的输入将不会在数据库中进行。
答案 5 :(得分:0)
@John这是一个很好的建议。
empty(trim($var))
我已经编程了6年,在检查它是否为空之前我从没想过修剪变量。