无法更新MySQL数据库

问题描述:

我正在努力更新我的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

添加

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