我在oracle中有一个包含以下定义的表
file_id varchar2(20)
file_content blob
使用以下PHP代码我试图检索blob字段,但我得到NULL
$file_id = '1324410597775';
$content = strtoupper('file_content');
$holder = ":holder";
$conn = oci_connect("user","password","tstring");
$sql = "select $holder from tbl_file_upload where file_id = '$file_id'";
$parse = oci_parse($conn, $sql);
oci_bind_by_name($parse, $holder, $content);
oci_execute($parse);
$row = oci_fetch_array($parse, OCI_RETURN_NULLS);
$lob = null;
if (is_object($row[$content])) {
$lob = $row[$content]->load();
$row[$content]->free();
echo "Here";
}
我按照此链接http://docs.oracle.com/cd/E17781_01/appdev.112/e18555/ch_twelve_blobs.htm
中的示例进行操作如果有人能指出我正确的方向,我会很感激。
答案 0 :(得分:0)
SELECT :holder
表示oci_fetch_array()无法识别答案中的file_content
列。请注意引用的教程如何使用SELECT pic FROM ...
而不是SELECT :pic FROM ...
。
答案 1 :(得分:0)
<?php
$conn = oci_pconnect('JRAHMAN89', 'jahid7654321', '10.2.1.18:1528/dbpblrnd');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
$stid = oci_parse($conn, "select * from TAGM_SHARE_REG where BO_FOLIO_NO='3'");
oci_execute($stid);
while (($rowA = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_LOBS)) != false)
{
header("Content-Type:" . $rowA['DOCTYPE']);
echo $rowA['DOC'];
}
?>
它将起作用