如果值在數據庫中不重複,則使用以下代碼運行更新查詢。爲什麼PHP if..esleif..else在MySQL查詢後再次從頭開始
if($lastvote==false){ // There isn't duplicate entry, just run INSERT query.
$this->save();
return "Vote recorded!";
}elseif($lastvote=="down" && $this->vote_value=="down"){
return "Already voted down!";
}elseif($lastvote=="up" && $this->vote_value=="up"){
return "Already voted up!";
}elseif($lastvote=="up" && $this->vote_value=="down"){
$this->update_last($this->topic_id, $this->updated_by, $this->vote_value);
return "Vote changed to down!";
}elseif($lastvote=="down" && $this->vote_value=="up"){
$this->update_last($this->topic_id, $this->updated_by, $this->vote_value);
return "Vote changed to up!";
}
查詢效果很好。但功能後
$這個 - > update_last()
private function update_last($topic, $by, $value){
global $database;
$sql = "UPDATE ".static::$table_name." SET vote_value='".$value."' WHERE topic_id = ".$topic." AND updated_by = ".$by;
$database->query($sql);
return ($database->affected_rows() == 1) ? true : false;
}
它沒有返回 「投票改爲向上/向下」 按過去的兩個條件。而是在成功執行來自最後兩個條件的UPDATE查詢之後,從前兩個查詢返回「已投票上/下」。
請指導我在哪裏出錯?
這很可能是您的腳本連續調用_twice_時出現的問題。這將解釋1.缺少輸出和2.意外輸出。檢查你的http服務器訪問日誌文件,你會在那裏看到處理過的請求。 – arkascha
@arkascha我檢查了apache訪問日誌文件。但沒有發現任何錯誤。但是在update_last()函數中更新查詢後才返回true。我從上面的函數中獲得正確的返回值。請幫忙! –