2013-10-04 38 views
0

嗨,我只是想知道這是否可能mysql_real_escape_string()和密碼()發出

$pass_esc = mysql_real_escape_string($pass); 
$user_esc = mysql_real_escape_string($user); 
$query = "UPDATE users SET user_password = PASSWORD('$pass_esc') WHERE user_name = '$user_esc'"; 

我不知道,如果它只是我還是真的是不可能的,因爲每次我使用這個我得到一個錯誤,如果我使用這個

$pass_esc = $pass; 
$user_esc = $user; 
$query = "UPDATE users SET user_password = PASSWORD('$pass') WHERE user_name = '$user_esc'"; 

它在我的結束罰款。

+0

的主要問題是什麼? –

+1

這是什麼意思「我得到一個錯誤」 –

+0

可能有單引號或特殊字符在$ pass或$ user中,建議回顯兩個出來檢查。 – Jianhong

回答

0

你忘了把$。

舊查詢。

$query = "UPDATE users SET user_password = PASSWORD('$pass_esc') WHERE user_name = 'user_esc'"; 

新建查詢:

$query = "UPDATE users SET user_password = PASSWORD('$pass_esc') WHERE user_name = '$user_esc'"; 
+0

oka,夥計,關於'$'的第二個答案。它是如何產生錯誤的?如果字符串「user_esc」沒有包含在「user_name」列中,它不會得到一個錯誤,但會有affected_rows = 0 –

+0

不介意變量因爲它應該是一個錯字,你會明白,如果你真的理解什麼mysql_real_escape_string上的PHP和密碼()在sql –

+0

@A超級真棒。你沒有定義錯誤是什麼。如果記錄沒有更新,可能是你認爲它是一個錯誤。 –