Re: [PHP-DB] Postgres and gzcompress
If your goal was to compress the data, this seems counterproductive since base64 will inflate it by 33% or more. I would recommend using a bytea column and a prepared statement to insert or update. This will be faster and you won't have to worry about escaping. On Sep 6, 2006, at 11:18 PM, Nathan Harmon wrote: Thanks a lot for your help. I finally got it to work by encoding after doing the compress -- instead of before as you suggested. So, using a text column type: $dataToInsert = pg_escape_string(base64_encode(gzcompress($data))); // insert here... // select here... $data = base64_decode(gzuncompress($row[0])); John DeSoi, Ph.D. http://pgedit.com/ Power Tools for PostgreSQL -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
RE: [PHP-DB] Postgres and gzcompress
Hi Bastien, Thanks a lot for your help. I finally got it to work by encoding after doing the compress -- instead of before as you suggested. So, using a text column type: $dataToInsert = pg_escape_string(base64_encode(gzcompress($data))); // insert here... // select here... $data = base64_decode(gzuncompress($row[0])); - Nate Original Message Follows From: "Bastien Koert" <[EMAIL PROTECTED]> To: [EMAIL PROTECTED], php-db@lists.php.net Subject: RE: [PHP-DB] Postgres and gzcompress Date: Wed, 06 Sep 2006 19:50:42 -0400 Try base_64_encod(ing) it then compressing it. on the way out, uncompress, base-64-decode the value and see what you get Bastien From: "Nathan Harmon" <[EMAIL PROTECTED]> To: php-db@lists.php.net Subject: [PHP-DB] Postgres and gzcompress Date: Wed, 06 Sep 2006 15:39:37 -0700 Hi, I would like to store a compressed string (XML) in my PostgreSQL table. So far, I have been unsuccessful in uncompressing the data that I insert. For example: echo gzuncompress(gzcompress('this is a test')); works fine. But when i store the gzcompressed data in the table, the data that is returned from a SELECT call does not match and the call to gzuncompress throws a "data error" warning. I have tried storing in both text and bytea column types. The problem appears to be in the escaping. For example, with bytea: $data = gzcompress('this is a test'); echo $data; $data2 = pg_unescape_bytea(pg_escape_bytea($data)); echo $data2; $data does not equal $data2. And with a 'text' column type, i use pg_escape_string() and the returned column value does not match. Am i doing something wrong? Is there an easier way? Thanks, Nate -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
RE: [PHP-DB] Postgres and gzcompress
Try base_64_encod(ing) it then compressing it. on the way out, uncompress, base-64-decode the value and see what you get Bastien From: "Nathan Harmon" <[EMAIL PROTECTED]> To: php-db@lists.php.net Subject: [PHP-DB] Postgres and gzcompress Date: Wed, 06 Sep 2006 15:39:37 -0700 Hi, I would like to store a compressed string (XML) in my PostgreSQL table. So far, I have been unsuccessful in uncompressing the data that I insert. For example: echo gzuncompress(gzcompress('this is a test')); works fine. But when i store the gzcompressed data in the table, the data that is returned from a SELECT call does not match and the call to gzuncompress throws a "data error" warning. I have tried storing in both text and bytea column types. The problem appears to be in the escaping. For example, with bytea: $data = gzcompress('this is a test'); echo $data; $data2 = pg_unescape_bytea(pg_escape_bytea($data)); echo $data2; $data does not equal $data2. And with a 'text' column type, i use pg_escape_string() and the returned column value does not match. Am i doing something wrong? Is there an easier way? Thanks, Nate -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php