Привет, ребята, я в чрезвычайной ситуации здесь. Мой код работал FINE некоторое время, когда ВСЕ вдруг что-то пошло не так, и я понятия не имею, что! Я сохраняю объект в своей базе данных, сериализуя его, а затем запускаю на нем base64_encode. Результатом является закодированная сериализованная строка, которую, когда я хочу получить, я просто декодирую и десериализую.
Работает нормально, но вдруг я понятия не имею, почему - всякий раз, когда я пытаюсь запустить часть, выполняющую вставку, - он кодирует объект корректно, но после выполнения запроса sql - значение, которое попадает в базу данных. это усеченный беспорядок !!!!
Это не проблема базы данных, так как если я вручную копирую, вставляю закодированную строку в поле, которое копирует и вставляется нормально.
Понятия не имею, что происходит - код ниже показывает, как я делаю обновление:
$personsTable = new ZFltData_Db_Table(array('name'=>'people'));
$where = $personsTable->getAdapter()->quoteInto('id = ?', $id);
$data['object'] = base64_encode(serialize($obj));
$personsTable->update($data, $where);
Поле базы данных на самом деле является длинным текстом.
РЕДАКТИРОВАТЬ ====
Извини насчет этого. Ну, зашифрованная строка выглядит так:
YToyOntpOjA7YTozOntzOjg6ImNhdGVnb3J5IjtzOjU6InBob25lIjtzOjQ6InR5cGUiO3M6NDoiV29yayI7czo3OiJkZXRhaWxzIjtzOjEzOiIxMjMzIDQzNTQzNTQ1Ijt9aToxO2E6Mzp7czo4OiJjYXRlZ29yeSI7czo1OiJwaG9uZSI7czo0OiJ0eXBlIjtzOjQ6IkhvbWUiO3M6NzoiZGV0YWlscyI7czoxNzoiMTAwOTEyIDgwOTgxMjkwMTIiO319
Это выглядит так, если я вручную копирую и вставляю его в базу данных с помощью Navicat Explorer.
Однако код при выполнении в конечном итоге помещает в базу данных только следующее:
Tjs=
Странная часть в том, что это все, что вводится независимо от того, какое содержимое объекта закодировано ... объект на самом деле является ассоциативным массивом ... что здесь не так? Это работало нормально до ... только сегодня ...