ID:               39341
 User updated by:  jasen at treshna dot com
 Reported By:      jasen at treshna dot com
-Status:           Feedback
+Status:           Open
 Bug Type:         PostgreSQL related
 Operating System: debian linux
 PHP Version:      4.4.4
 New Comment:

new example code:
I reallise that pg_insert is experimental, but it _seems_ to be working
perfectly.

Reproduce code:
---------------
<? 
$data="/'/'\"\001\002\003\004";   # sample data to test with
# you may need to use a different database...
$db=pg_connect('dbname=template1');
if (!$db) die( "couldn't connect to database") ;
if (!pg_query("CREATE TEMPORARY TABLE mytab ( a BYTEA ) ; "))
  die( "couldn't create table\n") ;
if (!pg_insert($db, 'mytab',array(a=> $data )))
  die( "couldn't insert data\n") ;
$res=pg_query("SELECT a FROM mytab");
if (!$res) die( "query failed\n") ;
$row=pg_fetch_assoc($res);
if ($row['a']  ==  $data )
  echo "Retrieved data matched inserted -GOOD!\n";
elseif (pg_unescape_bytea($row['a'])  ==  $data)
  echo "Retrieved data matched escaped version of inserted data -
oops!\n";
else
  echo "Retrieved and insterted data differ :(\n";
?>



Expected result:
----------------
Retrieved data matched inserted -GOOD


Actual result:
-------------------
Retrieved data matched escaped version of inserted data - oops!


Previous Comments:
------------------------------------------------------------------------

[2006-11-08 14:38:47] [EMAIL PROTECTED]

Thank you for this bug report. To properly diagnose the problem, we
need a short but complete example script to be able to reproduce
this bug ourselves. 

A proper reproducing script starts with <?php and ends with ?>,
is max. 10-20 lines long and does not require any external 
resources such as databases, etc. If the script requires a 
database to demonstrate the issue, please make sure it creates 
all necessary tables, stored procedures etc.

Please avoid embedding huge scripts into the report.



------------------------------------------------------------------------

[2006-11-02 05:20:30] jasen at treshna dot com

Description:
------------
I have a postgresql database table with a bytea field

 I insert into a record into this table using pg_insert

but when I extract the data using pg_fetch_assoc the binary data is
still escaped and needs to be unescaped using pg_unescape_bytea



Reproduce code:
---------------
$db=pg_connect('dbname=foo');
$res=pg_query("select * from images limit 1");
$row=pg_fetch_assoc($res);
header("content-type: $row[type]");
echo /*pg_unescape_bytea(*/$row['data']); 
/* unescape is needed - is this a bug in php? */


Expected result:
----------------
I would expect my binary image to display in the browser

Actual result:
--------------
the browser complains about corruption in the image 
closer examination reveals that the data is still escaped.


------------------------------------------------------------------------


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

Reply via email to