我在我的模型类中有这个代码:
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语句永远不会被执行!
我正试图解决这个问题。