我有這個類用戶,裏面有一個名爲deleteFriend的方法。這使用一個使用PDO的查詢來刪除數據庫表中的一行。如果我更改查詢中的值,回顯結果保持不變
正如您所見,此方法稱爲2種方式。當AUTH_ID爲5或6。當user_user_id爲6或5。以下是具有接受了必須爲1
public function deleteFriend($auth_id, $user_id, $db){
$stmt = $db->prepare("DELETE FROM `friends` WHERE `user_id` = ? AND `friend_id` = ? AND `accepted` = '1'");
$stmt->bindParam(1, $auth_id);
$stmt->bindParam(2, $user_id);
if($stmt->execute()){
return 1;
}else{
return 2;
}
}
現在繼承人我感興趣的那部分所添加的參數查詢中刪除。下面你可以看到我有2排。其中有6個爲user_id和另一個5.與其他行有5 friend_id和其他6
當這些方法都使用這些值來看,他們都返回即使1.引用接受0的行的方法不會刪除,接受1的方法不會刪除。我的猜測是,$ stmt-> execute()對於已接受0的方法返回true。但是爲什麼?它不符合查詢的標準,因爲接受不= = 1.這些函數按照它們應該的方式工作,並且對於我來說,如果它返回1或2,它就不重要,因爲最終結果是相同的(僅它刪除正確的行接受1),但我很好奇這是什麼原因。如果任何人都能對此有所瞭解,我會非常感激。如果我對問題的解釋令人困惑,我們深表歉意。我很困惑自己。 :-(
*我的猜測是$ stmt-> execute()正在返回*您不必在這裏猜測,只需查看手冊它返回的內容然後您就會看到它 – Rizier123
I知道它返回true。我已經檢查過曼努埃爾它在曼努埃爾說:「成功返回真,失敗失敗。」我的問題是爲什麼它返回真實?因爲當查詢不正確時這應該返回false。它沒有可接受的值1,所以它應該失敗。 – Niall