#35338 [Opn]: PDO freezes while retreiving binary data from postgres

2005-11-25 Thread f dot engelhardt at 21torr dot com
 ID:   35338
 User updated by:  f dot engelhardt at 21torr dot com
 Reported By:  f dot engelhardt at 21torr dot com
 Status:   Open
 Bug Type: PDO related
 Operating System: Linux
 PHP Version:  5CVS-2005-11-22 (CVS)
 Assigned To:  wez
 New Comment:

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?


Previous Comments:


[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] [EMAIL PROTECTED]

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] [EMAIL PROTECTED]

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: 

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



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


#35338 [Opn]: PDO freezes while retreiving binary data from postgres

2005-11-23 Thread f dot engelhardt at 21torr dot com
 ID:   35338
 User updated by:  f dot engelhardt at 21torr dot com
 Reported By:  f dot engelhardt at 21torr dot com
 Status:   Open
 Bug Type: PDO related
 Operating System: Linux
 PHP Version:  5CVS-2005-11-22 (CVS)
 New Comment:

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.


Previous Comments:


[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: 

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] [EMAIL PROTECTED]

Are you able to reproduce it with something different than PgSQL?
Sqlite, for example?
Are you able to reproduce it with PHP CLI?




[2005-11-22 20:57:09] f dot engelhardt at 21torr dot com

Description:

I tried to write binary data into a postgresql table, that work, but i
can not get this data out the table anymore.

Reproduce code:
---
prepare($q);
if ($stmt) 
{
  $stmt->bindColumn('DATA',$sData);
  if (!$stmt->execute())
  {
print_r($stmt->errorInfo());
die('DAMN');
  }
  if (!$stmt->fetch(PDO::FETCH_BOUND))
  {
print_r($stmt->errorInfo());
die('DAMN');
  }
  header('Content-Type: image/jpeg');
  echo $sData;
} else {
  print_r($dbh->errorInfo());
}

?>


Table foobar only has a bytea column named data

Expected result:

should display the image

Actual result:
--
the php-process does not do anything, the browser waits for an answer
(i waited 5 minutes, but nothing happened)





-- 
Edit this bug report at http://bugs.php.net/?id=35338&edit=1