Zend framework - veritabanındaki değerleri girerek değil - çöp gidiyor

1 Cevap php

Merhaba çocuklar burada acil bir durum. Ani somethings TÜM yanlış gitti benim kod bir süre gayet iyi çalışıyordu ve ben ne bir ipucu sığınak! Ben seri hale ve sonra bunun üzerine bir base64_encode çalıştırarak benim veritabanında bir nesne saklayın. Sonuç Ben almak istediğiniz zaman ben sadece şifresini çözmek ve onu unserialise kodlanmış bir tefrika dizedir.

Onun iyi çalışıyor ama aniden fikrim yok - neden ben ekleme yapar kısmını çalıştırmak için deneyin ne zaman - bu corrrectly nesneyi kodlar ama sql sorgusu çalıştırdıktan sonra - veritabanında biter değer bir kesiliyor karışıklık!!

Onun değil elle alan bu nüsha olarak kodlanmış dize kopyalayıp yapıştırın ve takılırsa para cezası için bir veritabanı sorunu.

Ben ne oluyor hiçbir fikrim yok - Aşağıdaki kodu ben güncelleştirmeyi yapıyorum nasıl:

$personsTable = new ZFltData_Db_Table(array('name'=>'people'));
$where = $personsTable->getAdapter()->quoteInto('id = ?', $id);
$data['object'] = base64_encode(serialize($obj));
$personsTable->update($data, $where);

Veritabanı alan aslında bir LongText olduğunu.

EDIT ==== Sorry bout that. Well the encrypted string looks like this:

YToyOntpOjA7YTozOntzOjg6ImNhdGVnb3J5IjtzOjU6InBob25lIjtzOjQ6InR5cGUiO3M6NDoiV29yayI7czo3OiJkZXRhaWxzIjtzOjEzOiIxMjMzIDQzNTQzNTQ1Ijt9aToxO2E6Mzp7czo4OiJjYXRlZ29yeSI7czo1OiJwaG9uZSI7czo0OiJ0eXBlIjtzOjQ6IkhvbWUiO3M6NzoiZGV0YWlscyI7czoxNzoiMTAwOTEyIDgwOTgxMjkwMTIiO319

Ben el Navicat explorer kullanarak veritabanına kopyalayıp yapıştırabilirsiniz eğer bu şekilde loks.

Ancak kod yürütür veritabanında sadece aşağıdaki koyarak biter zaman:

Tjs=

Garip yanı, bu ne olursa olsun kodlanmış nesnenin içeriğini girilir hepsi olmasıdır ... nesne aslında bir ilişkisel dizidir ... ne yanlış burada? Sadece bugün ... kadar gayet iyi çalışıyordu ...

1 Cevap

Seri hale temsilidir N; ile Tjs= base64_decodes, null.

Yani, $obj null bunu seri noktada komut değil, bir ilişkisel dizidir.

$ Obj nereden geldiğini bilmiyoruz, çünkü neden olduğunu söylemek imkansız. Sizin komut daha yukarı ile çalışıyorsanız bir şey varsa, print_r() testler yere üzerine alır olup olmadığını görmek için yapmak.