Могу ли я сохранить сериализованный массив в базу данных, в которой есть некоторые ссылочные подмассивы?

Код PHP, через который я взаимодействую, выглядит следующим образом для процесса обновления:

$data = $_POST;
foreach ($data['answers'] as &$d):
    if(!isset($d['default'])):
       $d['default'] = "false";
    endif;
endforeach;

И когда я var_dump после этой итерации, я получаю следующее:

array(2) {
  ["question"]=>
  string(20) "Which did you like?"
  ["answers"]=>
  array(6) {
    [0]=>
    array(2) {
      ["default"]=>
      string(4) "true"
      ["option"]=>
      string(5) "First"
    }
    [1]=>
    &array(2) {
      ["option"]=>
      string(5) "Second"
      ["default"]=>
      string(5) "false"
    }
  }
}

Как видите, во втором массиве есть ключевое слово "&array", я предполагаю, что это ссылка. Мой вопрос: могу ли я сериализовать этот массив и сохранить его в БД MYSQL? После этого я получил некоторую ошибку данных на странице отображения, поэтому я хочу убедиться, что это как-то связано с этим.

ОБНОВЛЕНИЕ Сообщение об ошибке, которое я получаю на странице отображения, заключается в том, что Неопределенный индекс: опция


person Suthan Bala    schedule 28.05.2013    source источник
comment
Опубликуйте ошибку и код, который ее генерирует.   -  person Sammitch    schedule 28.05.2013
comment
Хорошо, опубликовал, но ключ опции не сохраняется.   -  person Suthan Bala    schedule 28.05.2013
comment
На самом деле, вот примечание к параметрам serialize() из документации: Значение для сериализации. serialize() обрабатывает все типы, кроме типа ресурса. Вы даже можете использовать массивы serialize(), содержащие ссылки на самих себя. Циклические ссылки внутри сериализуемого массива/объекта также будут сохранены. Любая другая ссылка будет потеряна.   -  person Sammitch    schedule 28.05.2013
comment
@Sammitch Спасибо, я думаю, проблема в другом. Я бы посмотрел на это. знак равно   -  person Suthan Bala    schedule 28.05.2013
comment
@Sammitch Пожалуйста, опубликуйте это как ответ, чтобы я мог принять его как ответ :)   -  person Suthan Bala    schedule 28.05.2013


Ответы (2)


Из документов:

serialize() обрабатывает все типы, кроме типа ресурса. Вы даже можете использовать массивы serialize(), содержащие ссылки на самих себя. Циклические ссылки внутри сериализуемого массива/объекта также будут сохранены. Любая другая ссылка будет потеряна.

person Sammitch    schedule 28.05.2013

Что касается вашего сообщения об ошибке, опубликуйте строку, которую вы вызываете в индексе «option», чтобы мы могли видеть, что происходит не так...

И, как сказал Саммитч, вы можете использовать serialize() для хранения этих данных в своей БД.

person RBR    schedule 28.05.2013