Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Upload images as BLOBs in Oracle using PHP

Can anyone please tell me how to store images in an oracle database as BLOBs using PHP?

A working example would be nice. Thankyou.

like image 679
Shubham Saini Avatar asked Aug 15 '12 13:08

Shubham Saini


People also ask

What is BLOB format image?

A binary large object (BLOB or blob) is a collection of binary data stored as a single entity. Blobs are typically images, audio or other multimedia objects, though sometimes binary executable code is stored as a blob.

What is a BLOB in PHP?

BLOB stands for a binary large object that is a collection of binary data stored as a value in the database. By using the BLOB, you can store the documents, images, and other multimedia files in the database. We will create a new table named documents for the sake of demonstration.


1 Answers

You first need to get the image that is being uploaded from the $_FILES #global array:

$image = file_get_contents($_FILES['image_field_name']['tmp_name']);

Then to insert the image in the database try this:

$sql = "INSERT INTO table (id, image) VALUES(1, empty_blob()) RETURNING image INTO :image";

$result = oci_parse($connection, $sql);
$blob = oci_new_descriptor($connection, OCI_D_LOB);
oci_bind_by_name($result, ":image", $blob, -1, OCI_B_BLOB);
oci_execute($result, OCI_DEFAULT) or die ("Unable to execute query");

if(!$blob->save($image)) {
    oci_rollback($connection);
}
else {
    oci_commit($connection);
}

oci_free_statement($result);
$blob->free();
like image 154
DRiFTy Avatar answered Oct 10 '22 02:10

DRiFTy