#35338 [Asn->Bgs]: PDO freezes while retreiving binary data from postgres
ID: 35338
Updated by: iliaa@php.net
Reported By: f dot engelhardt at 21torr dot com
-Status: Assigned
+Status: Bogus
Bug Type: PDO related
Operating System: Linux
PHP Version: 5CVS-2005-11-22 (CVS)
Assigned To: wez
New Comment:
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to
report
a bug at http://bugs.php.net/how-to-report.php
When using binary data you must specify the param as LOB via
PDO::PARAM_LOB. This is necessary to allow the underlying layer to
realize the data is binary and use a binary escaping function, rather
then a string escaping function. In PostgreSQL using a string escaping
function or binary data results in data loss.
Previous Comments:
------------------------------------------------------------------------
[2005-11-25 11:12:56] f dot engelhardt at 21torr dot com
It works, if i specify PDO::PARAM_LOB with the bindParam() call in the
insert script:
$stmt->bindParam(':data',$sData,PDO::PARAM_LOB);
I am not sure, if it should work without this, but it is working on
postgresql if i do it like this.
It also works with mysql, but that was working also without the
PDO::PARAM_LOB parameter.
So my question is:
Is it desired that binary data can be inserted into a table without
PDO::PARAM_LOB or not?
------------------------------------------------------------------------
[2005-11-25 11:05:56] f dot engelhardt at 21torr dot com
I am sorry, but i have to tell you, that nothing changed.
After executing the insert script, there was only the following in the
database:
id data
4 \377\330\377\340
There has to more data.
I know, that when using the pg_ functions i have to pg_escape_bytea()
function on the binary data, and when i
read it, i have to use the pg_unescape_bytea() function.
Maybe this isn´t done.
------------------------------------------------------------------------
[2005-11-25 04:38:16] wez@php.net
Please try using this CVS snapshot:
http://snaps.php.net/php5-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php5-win32-latest.zip
I've made some adjustments in CVS; please try the next PHP 5.1 snapshot
and let me know how it goes.
------------------------------------------------------------------------
[2005-11-23 13:53:52] tony2001@php.net
Assigned to the maintainer.
------------------------------------------------------------------------
[2005-11-23 12:28:51] f dot engelhardt at 21torr dot com
Sorry, i forgot to give you another hint:
The data in the postgresql database in the first script was added with
the pg_-functions into a bytea field.
As explained some minutes ago, inserting binary data into a bytea field
in postgres via pdo failes with no error output.
Maybe i am using the wrong datatype for binary data in postgres, but i
only found bytea for binary puroses.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/35338
--
Edit this bug report at http://bugs.php.net/?id=35338&edit=1
Thread (10 messages)