2011-08-11 54 views
1

我有一個IPN腳本正在接收付款金額上做一些工作,並且在收到一定金額後,它將在用PayPal的驗證後更新其在數據庫中的許可證代碼IPN服務。在PHP腳本中更新SQL數據庫值

這個SQL是不正確的,它沒有更新。我的代碼的其餘部分沒有問題,因爲它發送一封電子郵件,但SQL錯誤在哪裏呢?它真的晚了,我間距了...

if ($amt == "77.00") 
    { 
    mysql_query("UPDATE login_users SET license_code = 3 WHERE username = ". $username ."") or die(mysql_error()); 
     // Change license code in database 
    } 
+0

你忘了引號「 」$的用戶名。「'。如果你想把你的變量看作一個字符串,你必須把它們放在一起。 –

回答

2

您需要周圍的用戶名引號,如果它是一個字符串。

WHERE username = '". $username ."' 

同時確保$username正確消毒:

$username = mysql_real_escape_string(... wherever the value is coming from ...); 
+0

非常感謝佩卡,你的答案直開箱即用。是的,不管它是否已經通過Paypal驗證,我應該這樣做,非常感謝。 –

0

SETWHERE前後左右的用戶名添加單引號

"UPDATE login_users SET license_code = 3 WHERE username = '". $username ."'";
+0

剛剛更新了我的代碼上面,Dreamweaver說我的語法錯誤,不得不添加尾隨「給你的,因爲它附加了一個變量,但它不更新仍然由於某種原因... –