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