[ mdostanic @ 22.04.2009. 09:23 ] @
U tabeli Firebird baze imam jedno BLOB polje u kojem se čuva tekst. Kad pomoću PHP-a pokušam da sadržaj tog polja prikažem u čitaču samo mi se prikaže ovako nešto:
Code:
0x0021c3ca000000a0
iako ja znam da tu ima mnogo više teksta koji prestavlja opis nekog predmeta.

Čitanje iz baze se vrši uobičajeno:

Code:
$sql = "select * from ...";    
$rows = $this -> db -> query($sql);    
while($row = $this -> db -> fetchObject($rows)) {
  echo $row -> OPIS);
}

Da li je neko imao sličan problem?
Unapred hvala.
[ Nikola Poša @ 22.04.2009. 10:27 ] @
Nemam iskustva sa Firebird-om, ali svejedno, nije mi jasno zašto si se odlučio da običan tekst čuvaš u polju tipa BLOB (Binary Large Object). Da ga nisi možda pomešao sa CLOB (Character Large Object BLOB SUB_TYPE TEXT)? Ili zašto jednostavno to ne bi čuvao u običnom TEXT polju, ako uopšte postoji taj tip u Firebird-u...
[ mdostanic @ 22.04.2009. 10:32 ] @
Znam da vam je čudno, ali takvu sam bazu dobio. Nisam je ja projektovao, samo radim na njoj. :)
[ Nikola Poša @ 22.04.2009. 11:02 ] @
U PHP-u imaš one f-je za rad sa Firebird/InterBase bazama, a jedna od njih je i ibase-fetch-assoc. S njom bi trebalo da uspe konverzija tekstualnog BLOB-a u VARCHAR, ali samo kada joj se kao drugi argument prosledi IBASE_TEXT. Naravno, imaš i varijante fetch_row, fetch_object, itd. Probaj...

A i verujem da razne database abstraction biblioteke imaju neke svoje mogućnosti za konverziju BLOB-a u string...
[ mdostanic @ 22.04.2009. 12:08 ] @
U pravu si Nikola. Trebalo je dodati IBASE_TEXT unutar metode fetchObject u kojoj sam radio ibase_fetch_assoc
Code:
ibase_fetch_assoc($query, IBASE_TEXT)

Sada radi kako treba.
Hvala.