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