如果语句阻塞在else语句块

时间:2018-05-02 20:00:39

标签: php if-statement

我正在编写一些项目,然后我就部分代码遇到了一些问题。我碰到了头,然后我发现了问题所在。这里有两个版本的代码,第一个是作品,第二个不是。代码的第二部分只是激活else块,它基本上跳过 if 代码块然后转到else块然后激活die函数。有人可以解释我做错了什么和哪里? 非常感谢!

// This version of code works!
// Check for errors
            if(!empty($data['error_blog_title']) && !empty($data['error_blog_body'])){
                // There are errors
                $this->loadView('blog/edit', $data);
            } else{
                // No errors, update post
                $this->blogModel->updatePost($data);
                redirect('/blog/index');
            }

VS

// This one doesnt
// Check for errors
            if(!empty($data['error_blog_title']) && !empty($data['error_blog_body'])){
                // There are errors
                $this->loadView('blog/edit', $data);
            } else{
                if($this->blogModel->updatePost($data)){
                    // Updated succesfully
                    redirect('blog/index');
                } else{
                    // Update failed
                    die('Something went wrong!');
                }
            }

1 个答案:

答案 0 :(得分:1)

我找到了解决方案。在我的updatePost()方法中,我改变了一些东西,

我检查了execute(),如果它正常,则返回TRUE,否则为FALSE

if($stmt->execute()){
    $stmt->close();
    return TRUE;
} else{
    $stmt->close();
    return FALSE;

通过放置这些代码行,我实现了一切。

BTW我把这些代码行放在我的其他项目中但是在这里我没有(我忘了)。

谢谢各位帮助我的人。 :)