Nigdy nie bawiłem się w to, zeby za pomocą PHP czy innego jezyka programowania wyciągać z bazy cały PLIK i coś z nim robić, jednak dostałem informacje od Twórcy bazy danych:
Witam,
Treści pism dostępne są w tabeli pismo_tresc (łączymy z tabelą pismo po id_pisma), w kolumnie comp_psm
W PHP treść pisma dekompresujemy w następujący sposób:
$tresc = gzuncompress($trescPisma);
Na wyjściu otrzymujemy plik RTF.
Jednak:
Dlaczego przy wykonaniu zapytania do bazy danych przez PGadmina zwraca mi coś takiego:
x\234\355\031ko\3338\362\373\001\367\037\006\270\017\355\026\216C=\374J\213\342\334&\355\246I\223 I/{=\035\012J\242l\305\264\250\245\250*R\220\377~CJv\034[i\223\273\355\266\213=\303\026\207\303!9\234\267\350kO\252\310\362h\222\305\346\021\244\023\313\356\0 (...)
a przy zapytaniu z pliku PHP zwraca mi coś takiego:
'comp_psm' => string '\x789ced196b6fdb38f2fb01f71f06b80fed168e433dfc4a8be2dc26eda6499320492f7b3d1d0a4aa26cc5b4a8a5a82a5290ff7e434a761c5b6993bbedb68b3dc31687c321399cb7e86b4faac8f26892c5e611a413cbee112f0f2c2f645144aebd48244af9fcaf7f4190785156c459e645c194ca8c29db197a512a7fb5612c63ca9fdf1832cb8ba498d3a485ec3c9eb30c8e5801a79aa299607b51c8022197134843ee80886004afa80c44c81a6a6763f986faac9cfb0299306481e04222e3cf3dc942e24d246309f17c9e33625076af572335a0d1d8b60f90b625cc1e992a39cba68c298489172b9a122f11451c068aa754d612b35df8d7919073cafffdfce6'... (length=4638)
Ciągi powinny wskazywać to samo a zwracają różne informacje?
Tak wygląda kod:
// Wykonanie zapytania SQL
$query = 'SELECT * FROM pismo inner join czynnosc ON czynnosc.ident = pismo.id_czynnosci inner join pismo_tresc on pismo_tresc.id_psm = pismo.ident where id_sprawy = 16642 limit 3';
$result = pg_query($query) or die('Nieprawidłowe zapytanie: ' . pg_last_error());
// Wyświetlenie wyników w postaci HTML
//echo "<table>\n";
while ($line = pg_fetch_array($result, null, PGSQL_ASSOC))
{
var_dump($line); // różne próby
$trescPisma = $line['comp_psm'];
echo gettype($trescPisma);
$tresc = gzuncompress($trescPisma);
echo $tresc;
echo "</br>";
echo $trescPisma;
echo "</br>";
/*
echo "\t<tr>\n";
foreach ($line as $col_value)
{
echo "\t\t<td>$col_value</td>\n";
}
echo "\t</tr>\n";
*/
}