#35338 [Fbk->Opn]: PDO freezes while retreiving binary data from postgres
| From: | f dot engelhardt at 21torr dot com | Date: | Fri, 25 Nov 2005 10:05:58 +0000 |
| Subject: | #35338 [Fbk->Opn]: PDO freezes while retreiving binary data from postgres | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-88911@lists.php.net to get a copy of this message | ||
ID: 35338
User updated by: f dot engelhardt at 21torr dot com
Reported By: f dot engelhardt at 21torr dot com
-Status: Feedback
+Status: Open
Bug Type: PDO related
Operating System: Linux
PHP Version: 5CVS-2005-11-22 (CVS)
Assigned To: wez
New Comment:
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.
Previous Comments:
------------------------------------------------------------------------
[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.
------------------------------------------------------------------------
[2005-11-23 12:25:07] f dot engelhardt at 21torr dot com
Exact the same script (replacing pgsql by mysql in the new PDO line) it
works with mysql.
I also tried it with CLI, the same error.
And i found out another bug. I tried to insert data into the table with
pdo into a postgresql database, but there are only some bytes inserted,
not all.
Script:
<?php
$dbh = new PDO('pgsql:host=localhost;dbname=test','root','fo0224');
$sData =
file_get_contents('/home/bowman/.fluxbox/backgrounds/NVA-91.jpg');
$q = 'INSERT INTO foobar (data) VALUES (:data)';
$stmt = $dbh->prepare($q);
if ($stmt)
{
$stmt->bindParam(':data',$sData);
if (!$stmt->execute())
{
print_r($stmt->errorInfo());
die('DAMN');
}
//header('Content-Type: image/jpeg');
echo $sData;
flush();
exit;
} else {
print_r($dbh->errorInfo());
}
?>
This script is working with MySQL, but not with Postgresql
------------------------------------------------------------------------
[2005-11-22 22:36:40] tony2001@php.net
Are you able to reproduce it with something different than PgSQL?
Sqlite, for example?
Are you able to reproduce it with PHP CLI?
------------------------------------------------------------------------
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