Rozbieżność w zapytaniu PGadmin i skrypt PHP

0

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";
*/
}
1

inne kodowanie połączenia z bazą?

0

Czyli jak ze kodowanie strony musi byc zgodne z kodowaniem bazy? Jak je sprawdzic?

0

Wszystko spoko, jednak
kodowanie.png
Kodowanie UTF-8, kodowanie w php:

header( 'Content-Type: text/html; charset=utf-8' );

i

echo pg_client_encoding($dbconn);

zwraca wynik:

UTF8

Czyli to chyba nie to? Czy może coś źle robię?

EDIT:
SPRAWA ROZWIĄZANA:
Dla potomności:

 
//wykonanie zapytania
$result = pg_query($dbconn,$query) or die('Nieprawidłowe zapytanie: ' . pg_last_error());
//pobranie objektu z bazy
$reg = pg_fetch_object($result);
//pobranie bytea z objektu
$test = pg_unescape_bytea($reg ->comp_psm);
//dekompesja pliku
$uncompres = gzuncompress($test);
//wybranie nazwy pliku
$file = "baza2.rtf"; 
// uchwyt pliku, otwarcie do dopisania 
$fp = fopen($file, "a");
// blokada pliku do zapisu 
flock($fp, 2);  
// zapisanie danych do pliku 
fwrite($fp, $uncompres); 
// odblokowanie pliku 
flock($fp, 3);
// zamknięcie pliku 
fclose($fp); 

1 użytkowników online, w tym zalogowanych: 0, gości: 1