Sorry if this has been asked a thousand time. I read through the web and think to have done everything I should. I have a db with a bytea field. In it I stored data from a png file. When I stored it I used pg_escape_bytea(<CONTENTS OF FILE>) and it seems it ended up ok in the database. Here the store script: <?php error_reporting(E_ALL); ini_set('display_errors', '1'); include_once 'classes/dbop.php'; $thePrefName = $_REQUEST['prefkeyname']; //$theData = $_REQUEST['file']; if ($_FILES["file"]["error"] > 0) { echo "Error: " . $_FILES["file"]["error"] . "<br />"; return; } else { echo "Upload: " . $_FILES["file"]["name"] . "<br />"; echo "Type: " . $_FILES["file"]["type"] . "<br />"; echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />"; echo "Stored in: " . $_FILES["file"]["tmp_name"]; } $file=fopen($_FILES["file"]["tmp_name"],"r") or exit("Unable to open file!"); $filedata = ''; while (!feof($file)) { $filedata .= fgetc($file); } fclose($file); $filedata = pg_escape_bytea($filedata); $query = 'INSERT INTO qmcustomerdata (prefkey,dataval) VALUES(\'' . $thePrefName . '\',\'' . $filedata . '\')'; Dbop::singleton()->querydb($query); ?> Here the script customer_displayimage.php pointed to: <?php error_reporting(E_ALL); ini_set('display_errors', '1'); include_once 'classes/dbop.php'; $query = 'SELECT dataval FROM qmcustomerdata WHERE prefkey=\'' . $_REQUEST['prefkey'] . '\''; $result = Dbop::singleton()->querydb($query); echo pg_unescape_bytea($result[0]['dataval']); ?> Here the Dbop and what it's doing: public function querydb($querystring) { // echo '<br>DEBUG::' . $querystring . '<br>'; $dbconnection = pg_connect("host=localhost dbname=xxxxx user=xxxxx password=xxxxx") or die('could not connect: ' . pg_last_error()); $result = pg_query($querystring); $ra = array(); if (pg_num_rows($result)){ $ra = pg_fetch_all($result); } pg_free_result($result); pg_close($dbconnection); return $ra; } What am I doing wrong? Thanks Alex |