即使没有在php中找到输入,为什么这个流程会被执行?

时间:2016-01-11 07:18:58

标签: php

我有一张表格,我可以从中获得所有输入。当我将输入更改为错误时,它仍然执行循环并在我的数据库中执行输入。假设有一个空白日期;它仍然接受它并且不会突破循环。我不明白为什么。

这是我做的:

if(isset($_POST['amt'])){
    $trans_amt = $_POST['amt'];

    if(isset($_POST['date'])){
        $date = $_POST['date'];

        if(isset($_POST['mode'])){
            $mode = $_POST['mode'];

            $updateQuery = "UPDATE table SET date = '".$date."' WHERE mode = ".$mode;

            $updateQuery1 = "UPDATE table1 SET date1 = '".$date."' WHERE mode1 = ".$mode;
        }
        else{
             echo "Mode not found";
        }
    else{
        echo "Date not found";
    }
else{
    echo "Amount not found";
}

这是问题所在......当我意外地改变我的

2 个答案:

答案 0 :(得分:1)

isset检查变量是否已设置,即使变量为空(false,0或空字符串) - 它仍然设置isset返回 true 即可。

检查空虚 - 使用empty或与空字符串""进行比较

if (!empty($_POST["some_var"])) 
if ($_POST["some_var"] != "")

参考文献:issetempty

答案 1 :(得分:1)

这是因为在空白日期的情况下,date变量仍然传递给您的PHP脚本但是空白。 isset函数仅检查 为null值。您需要使用empty函数,如果输入空白,则为真。