【问题标题】:Retrieve blob field from oracle database using PHP使用 PHP 从 oracle 数据库中检索 blob 字段
【发布时间】:2012-01-25 12:23:46
【问题描述】:

我在 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

如果有人能指出正确的方向,我将不胜感激。

【问题讨论】:

  • 是不是报错了?

标签: php oracle blob


【解决方案1】:

SELECT :holder 表示 oci_fetch_array() 无法识别答案中的 file_content 列。请注意引用的教程如何使用SELECT pic FROM ... 而不是SELECT :pic FROM ...

【讨论】:

    【解决方案2】:
    <?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'];
    
    }
    
    ?>
    

    会有用的

    【讨论】:

    • 虽然此代码可能会解决问题,including an explanation 关于如何以及为什么解决问题将真正有助于提高您的帖子质量,并可能导致更多的赞成票。请记住,您正在为将来的读者回答问题,而不仅仅是现在提问的人。请edit您的回答添加解释并说明适用的限制和假设。
    猜你喜欢
    • 2014-04-24
    • 1970-01-01
    • 2011-05-04
    • 2010-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-28
    • 2023-03-06
    相关资源
    最近更新 更多