2012-06-15 4 views
1

Я использую MongoDB и PHP в течение нескольких месяцев. Я тестирую пару новых функций, из ниоткуда MongoDB действует странно. Он усекает первый символ в строке, когда я вставляю его в базу данных. Мой код не изменился, только результаты? У меня есть текстовая форма, называемая деталями. Когда я отправляю и вставляю его в коллекцию, записи о деталях становятся все скверными. Если я вхожу «Помидоры» в форму, я буду получать:Weird MongoDB Ошибка PHP

От PHP эха (здание из запроса для записи после вставки):

"omato" 

От Монго Shell я получаю:

"Details" : "" 

Из запроса API (отголоски JSON) я получаю:

"Details" : "\u0000omato" 

Любой мысли о том, что вызывает это?

+0

Хмммм, смешная вещь. Все работает отлично. Если кто-нибудь читает это, есть ли у кого-нибудь случайные ошибки, подобные этому из Монго? Кажется немного отрывочным? – nathansizemore

+0

Какие-либо обновления os происходят в этот период времени? –

+0

Нет. Просто удалили все записи из базы данных и начали вводить новые для тестирования. Очень странно. – nathansizemore

ответ

1

Кажется, что у вас почему-то добавлен символ \0 в строку. Три разных инструмента обрабатывают все по-разному:

  1. PHP-эхо просто отображает его, и, следовательно, оно не появляется. Если вы будете передавать результат через что-то вроде hexdump, вы увидите символ \0.

  2. Корпус манго обрезает дисплей, когда он встречает символ \0, и, следовательно, вы ничего не видите.

  3. Кодировщик JSON PHP кодирует символ \0 как «\ u0000».

+0

Я думаю, что это могло иметь какое-то отношение к покрытию Virgina EC2. Он испытывал ошибки в то же время, когда получал эту странную ошибку. Я никогда не менял код, он просто работал, не работал, и с тех пор снова работает. – nathansizemore