Я изо всех сил пытаюсь обновить свою базу данных 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'] . "'");
Как я могу это исправить, чтобы заставить его работать?
EDIT:
Я не получаю сообщение об ошибке, но функция не обновляет базу данных и возвращает ложь.
$ _SESSION ['data'] ['user'] ['details'] ['email'] возвращает использованный адрес электронной почты (который появляется в базе данных).
Сериализованный массив слишком длинный для вставки здесь, но с ним нет проблем - это строка в любом случае, поэтому я не вижу, как это может быть неправильно.
EDIT2:
Как оказалось мое предположение было неверным, сериализованные массив должен быть экранирован первым.
Какая ошибка вы получаете? Сам запрос выглядит так, что потребуется некоторая информация. Дампы '$ serialiszedTemplates' и' $ _SESSION ['data'] ['user'] ['details'] ['email'] 'тоже могут быть полезны. (p.s. намного лучше на регистрационных данных на этот раз;)) –
спасибо (довольно неловко). Я не получаю ошибку, функция просто ничего не делает и возвращает false. $ _SESSION ['data'] ['user'] ['details'] ['email'] возвращает использованный адрес электронной почты (который появляется в базе данных), и сериализованный массив слишком длинный для вставки здесь, но проблем нет с ним - это строка в любом случае, поэтому я не вижу, как это может быть неправильно. –
Вы пытались выполнить обновление вручную, используя значение ['email']? Похоже, что это критерий WHERE при ошибке, поскольку в противном случае он будет обновлять хотя бы * что-то * или ошибку. Возможно, стоит добавить обработчик ошибок, подробно описанный bumperbox, если ошибка подавляется –