0
我嘗試執行以下操作,我在這裏丟失了什麼?MySQL聲明使用WHERE AND OR
DELETE FROM escrow WHERE host = '$name' OR challenger = '$name' AND id='$match_id'
我嘗試執行以下操作,我在這裏丟失了什麼?MySQL聲明使用WHERE AND OR
DELETE FROM escrow WHERE host = '$name' OR challenger = '$name' AND id='$match_id'
當您在任何編程語言ALWAYS使用括號在任何情況下使用AND
和OR
在一起。有它獲取第一個(在AND
或OR
條件)來評估一個隱含的訂單,但你平時不知道的順序,不應該在需要看它在手動
還可以使用Prepared statements的SQL查詢這取決於變量。
你的情況,你要麼寫
... WHERE (host = ? OR challenger = ?) AND id = ?
或
... WHERE host = ? OR (challenger = ? AND id = ?)
取決於你想要什麼樣的條件。
另外,當SQL查詢因任何原因失敗時,檢查從數據庫中獲得的錯誤消息。它會告訴你這個查詢有什麼問題。但是,返回無行的有效查詢(因爲WHERE條件不匹配任何行)仍然是有效的查詢而不是錯誤,結果只是空的。
告訴我們發生了什麼事情,預計會是一個很好的開始。我們不知道查詢是否運行,但沒有達到預期結果,或者附近的小貓是否着火。 – ESG