Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法捕获if子句中的错误(使用应答更新)_Php - Fatal编程技术网

Php 无法捕获if子句中的错误(使用应答更新)

Php 无法捕获if子句中的错误(使用应答更新),php,Php,在下面的代码中,$alb->error包含一条错误消息。我可以用echo来验证,没问题 当我想在if子句中捕捉该错误时,问题就出现了。首先,守则: if($action == "add") { //PUT CODE TO SAVE A NEW ALBUM HERE //SHOULD RETURN ALBUM ID $alb = new album(); //fill object album with propert

在下面的代码中,$alb->error包含一条错误消息。我可以用echo来验证,没问题

当我想在if子句中捕捉该错误时,问题就出现了。首先,守则:

    if($action == "add")
    {
        //PUT CODE TO SAVE A NEW ALBUM HERE
        //SHOULD RETURN ALBUM ID
        $alb = new album();
        //fill object album with properties to be saved
        $alb->date = checkNull($_POST['alb_date']);
        $alb->name = checkNull($_POST['alb_name']);
        $alb->desc = checkNull($_POST['alb_desc']);
        $alb->cat_id = $_POST['categories'];
        //call save method of album
        $alb->create_album();

        //catch error
        if($alb->error <> "")
        {
            header("Location: add_album.php?error='$alb->error'");
        }

        //set album id to pass it along to add_pictures
        $alb_id = $alb->id;
    }
    elseif($action == "edit")
    {
        //PUT CODE TO SAVE EDITED ALBUM HERE
        //SHOULD RETURN ALBUM ID
    }

        header("Location: add_pictures.html?alb_id='$alb_id'");
没用

    //catch error
    if(!is_null($alb->error))
    {
    header("Location: add_album.php?error='$alb->error'");
    }
没有雪茄

    //catch error
    if($alb->error <> "")
    {
        header("Location: add_album.php?error='$alb->error'");
    }
//捕获错误
如果($alb->错误“”)
{
标题(“位置:add_album.php?error='$alb->error'”;
}
然而,零快乐

if子句从未得到处理。我错过了什么


谢谢您的时间。

所以问题是,对于操作类型:if action=add或edit,我的外部if子句后面有一个标题重定向。当我将它包装在else子句中时,它起了作用:

    }
    elseif($action == "edit")
    {
        //PUT CODE TO SAVE EDITED ALBUM HERE
        //SHOULD RETURN ALBUM ID
    }
    else
    {
        header("Location: add_pictures.html?alb_id='$alb_id'");
    }

谢谢你的帮助

所有这些都应该有效。您确定正在执行
if
吗?不是,这是问题所在。如果我回显$alb->error-我会得到关于表上contstraint的sql错误。所以这个属性被填满了。但是if子句永远不会被触发当问题出现在你把
if
放在哪里的时候,因为它永远不会被触发。我编辑了我的初始代码块,以显示我在创建相册后立即调用if子句。如果我用$alb->error的回显替换if语句,我的错误就会显示在屏幕上。。。
    }
    elseif($action == "edit")
    {
        //PUT CODE TO SAVE EDITED ALBUM HERE
        //SHOULD RETURN ALBUM ID
    }
    else
    {
        header("Location: add_pictures.html?alb_id='$alb_id'");
    }