faqts : Computers : Programming : Languages : PHP : Database Backed Sites : Oracle

+ Search
Add Entry AlertManage Folder Edit Entry Add page to http://del.icio.us/
Did You Find This Entry Useful?

19 of 27 people (70%) answered Yes
Recently 4 of 10 people (40%) answered Yes

Entry

How can I load binary files to Oracle 8 BLOB-field ?

Sep 18th, 2001 06:56
Andi Worx, Pasi Hyyrylainen,


$dbcon = OCILogon($dbUser,$dbPassword,$dbName);
$lob = OCINewDescriptor($dbcon, OCI_D_LOB);
$data = fread(fopen($form_data, "r"), filesize($form_data));
$query = "insert into IMAGE_DATA (";
$query .= "NUM_IMAGEID, STR_IMAGE_TYPE, BLO_IMAGE_DATA";
$query .= ") values (";
$query .= "NUM_ID.NEXTVAL, $form_data_type, EMPTY_BLOB()";
$query .= ") returning IMAGE_DATA into :img_blob";
$stmt = OCIParse($dbcon,$query);
OCIBindByName($stmt, ':img_blob', &$lob, -1, OCI_B_BLOB);
if (OCIExecute($stmt,OCI_DEFAULT)) {
	if($lob->save($data)){
		OCICommit($dbcon);
		OCIFreeStatement($stmt);
		echo "Blob successfully uploaded\n";
	}else{
		OCIFreeStatement($stmt);
		echo "Couldn't upload Blob\n";
	}
}
OCILogoff($dbcon);

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

If you use this Codesnippet, you can store BLOB to an oracledb!
The next Codesnippet you can view the images!

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

$dbcon = OCILogon($dbUser,$dbPassword,$dbName);
$query = "select * from IMAGE_DATA where NUM_ID=$id";
$stmt = OCIParse($dbcon, $query);
OCIExecute($stmt, OCI_DEFAULT);
while (OCIFetchInto($stmt, $row, OCI_ASSOC)) {
	$data = $row["BLO_IMAGE_DATA"]->load();
}
$type = OCIResult($stmt,"STR_IMAGE_TYPE");
OCIFreeStatement($stmt);
   
Header( "Content-type: $type");
echo $data;

cu
AndiWorx