PHP代码中的荒谬错误!

时间:2011-02-25 19:13:23

标签: php mysql

我在我的模型类中有这个代码:

public function insertPage($owner, $fbPageId = null) {
    echo '<pre> insertPage called </pre>';

    $owner = mysql_escape_string($owner);
    if (!is_null($fbPageId)) {
        echo '<pre>    fbPageId is set </pre>';

        $query = $this->sqlConn->query("INSERT INTO pages XXX");
    } else {
        echo '<pre>    fbPageId is not set </pre>';
        //die('Dummy die()');
        $query = $this->sqlConn->query("INSERT INTO pages XXX");
    }

    return $query;
}

注意Dummy die(),因为它很重要!) 然后我的控制器中的以下代码:

if (isset($_POST['fbPageId'])) {
        echo '<pre> fbPageId is set </pre>';
        if (!($page = $this->model->pageExists($_POST['fbPageId']))) { // checks if page exists in db
            echo '<pre> page does not exist </pre>';
            if (!($this->model->insertPage($_SESSION['uid'], $_POST['fbPageId']))) {
                die('Error on INSERT');
            } else {
                echo '<pre> page entered correctly </pre>';
            }
            $pageId = $this->model->lastInsertId();
        } else { // page does exist
            echo '<pre> page does exist </pre>';
            // some other stuff
        }
    }

现在:当控制器执行时,我得到了这个输出(在空表上):

 fbPageId is set 
 page does not exist 
 insertPage called 
     fbPageId is set 
 page entered correctly 

这正是我的期望,但是当我检查我的数据库而不是只有一行包含pageId,facebookId和所有者(这些是字段)时,我得到三行!一个用facebookId正确填充,其他的有一个NULL值(我在表中承认)。

正如你所看到的,我在insertPage()的开头放了一个echo语句,所以它应该在每次调用时显示一些内容,但字符串“insertPage called”只显示一次。 此外,如果我取消注释“Dummy die()”行,我在表中只获得一行,但之前的echo语句永远不会被执行!

我正试图解决这个问题。

1 个答案:

答案 0 :(得分:0)

那么问题是什么? 也许你必须在回声后尝试flush()