我正在努力更新我的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'] . "'");
如何解决此问题以使其有效?
修改
我没有收到错误,但是该函数没有更新数据库,而是返回false。
$ _ SESSION ['data'] ['user'] ['details'] ['email']返回使用的电子邮件地址(确实出现在数据库中)。
序列化数组太长了,无法在此处粘贴,但它没有任何问题 - 无论如何它都是一个字符串,所以我看不出它是怎么回事。
EDIT2:
事实证明我的假设是错误的,序列化数组必须先被转义。
答案 0 :(得分: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