2016-11-17 85 views
1

無效參數號我得到這個錯誤:SELECT語句給人致命錯誤:

Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number in

這是我的代碼(這不起作用):

"SELECT id, username, email, password FROM users WHERE (username = :usernameOrEmail OR email = :usernameOrEmail) AND password = :password" 

,但如果我刪除的OR,那麼它的作品!

"SELECT id, username, email, password FROM users WHERE username = :usernameOrEmail AND password = :password" 
+1

第一個查詢看起來也不錯。但嘗試一次'「選擇id,用戶名,電子郵件,密碼從用戶WHERE密碼=:密碼和(用戶名=:usernameOrEmail或電子郵件=:usernameOrEmail)」'讓我們知道工作與否。當你將值分配給':usernameOrEmail'和':password'時,你可能會在下一行出現錯誤。 –

+0

您可能必須將':usernameOrEmail'綁定兩次。僅僅因爲你使用相同的參數並不意味着你不需要3個綁定。 –

+0

使用準備? –

回答

-2

與下面的查詢

SELECT 
    id, username, email, password 
FROM 
    users 
WHERE 
    :usernameOrEmail 
    IN (username,email) 
    AND password = :password 

嘗試正如你不能在查詢中使用命名參數標記1倍以上。

-1

這是PHP版本的BUG
您嘗試更新的PHP版本