2012-02-20 119 views
-1

我正在努力更新我的MySQL數據庫。 這是我採寫:無法更新MySQL數據庫

$mysql_link = mysql_connect('servername','username','password'); 
mysql_select_db('bambi4couk_599731_db3', $mysql_link); 

$serializedTemplates = serialize($_SESSION['data']['user']['templates']); 
mysql_query("UPDATE rmusers SET templates='$serializedTemplates' WHERE email='" . $_SESSION['data']['user']['details']['email'] . "'"); 

我怎樣才能解決這個問題,使工作?

編輯:

,我沒有得到一個錯誤,但功能沒有更新數據庫,它返回假。 $ _SESSION ['data'] ['user'] ['details'] ['email']返回使用的電子郵件地址(它出現在數據庫中)。

序列化的數組太長,無法粘貼,但沒有問題 - 它是一個字符串,所以我不明白它可能是錯的。

EDIT2:

事實證明我的假設是錯誤的,序列化的陣列必須先逃過一劫。

+1

你得到什麼錯誤?查詢本身看起來很健全,因此需要一些信息。 '$ serialiszedTemplates'和'$ _SESSION ['data'] ['user'] ['details'] ['email']的轉儲可能也很方便。 (這次登錄詳細信息要好得多;)) – 2012-02-20 23:46:32

+0

謝謝(相當尷尬)。我沒有收到錯誤,該函數只是無所作爲並返回false。 $ _SESSION ['data'] ['user'] ['details'] ['email']返回使用的電子郵件地址(它出現在數據庫中)並且序列化數組太長而無法粘貼,但沒有問題與它 - 它是一個字符串無論如何,所以我不知道它可能是錯的。 – 2012-02-20 23:52:12

+0

您是否嘗試過使用['email']值進行手動更新?這聽起來好像是WHERE條件有問題,否則它會更新至少* something *或錯誤。感謝您的幫助,可能值得添加錯誤處理程序,詳情請參見緩衝箱以防止錯誤得到抑制 – 2012-02-20 23:56:04

回答

2

添加

or die (mysql_error()); 

喜歡這個

mysql_query("UPDATE rmusers SET templates='$serializedTemplates' WHERE email='" . $_SESSION['data']['user']['details']['email'] . "'") or die (mysql_error()); 

然後告訴我們該錯誤信息是什麼,所以我們可以幫助您

在猜測我希望你沒有逃脫值

請參閱mysql_real_escape_string()

http://www.php.net/manual/en/function.mysql-real-escape-string.php

+0

賓果。感謝您的幫助。我因爲我的糟糕教育而責怪w3schools。 – 2012-02-20 23:56:33