[PHP] Upload รูปลง Oracle
มีงานที่ต้องใช้ PHP ทำการ Upload รูปลงไปเก็บใน Database Oracle 10G ซึ่งผมไม่ค่อยชอบงานแบบนี้เลย แต่ก็ค้นหาจาก อ.google ได้ หนทางสว่างมาประมาณนี้
$conn = oci_connect("user", "password", "host"); //Create oracle lob descriptor $lob = oci_new_descriptor($conn, OCI_D_LOB); $sql = "INSERT INTO TEST(ID, NAME, IMG) VALUES('1','XX', EMPTY_BLOB()) RETURNING IMG INTO :FILE_DATA"; //Create Statement $stmt = oci_parse($conn, $sql); //Bind blob return data oci_bind_by_name($stmt, ":FILE_DATA", $lob, -1, OCI_B_BLOB); //Exceute insert $rc = oci_execute($stmt, OCI_DEFAULT); if($rc){ //function $lob->savefile(...) reads from the uploaded file. to binay save to db if ($lob->savefile($_FILES['FILE_IMG']['tmp_name'])) { //Commit transaction oci_commit($conn); }else{ //Rollback transaction oci_rollback($conn); } }else{ //Rollback transaction oci_rollback($conn); } //Close resource oci_free_descriptor($lob); oci_free_statement($stmt); oci_close($conn);
หมายเหตุ : ใช้ได้ทั้งรูป ไฟล์ครับ สำหรับ CLOB ก็ไม่น่าจะแตกต่างจากนี้
แหล่งข้อมูล
Working with LOBs in Oracle and PHP
PHP Oracle FAQ