【问题标题】:Querying BLOB field from Oracle Database with PHP使用 PHP 从 Oracle 数据库中查询 BLOB 字段
【发布时间】:2014-04-24 00:13:44
【问题描述】:

我有一个 PHP 脚本,它从 Oracle 数据库中获取图像并将其保存到 MySQL 数据库中。

在我从 PHP 5.1.6 升级到 PHP 5.3.3 之前它运行良好。查询 Oracle 数据库的部分不再起作用。它可以查询除图像字段之外的所有字段。我相信它是一个 BLOB。

例如,下面的代码输出 Resource id #6

$sql2 = "SELECT CREATIVE FROM creative WHERE id = 10314612";
    foreach($oci->query($sql2) as $row2) {
        echo $row2['CREATIVE']; 
    }

【问题讨论】:

  • 来自PHP doc:“默认情况下,LOB 列返回为LOB descriptors。”试试$rows["CREATIVE"]->load()
  • 感谢您的回复,但这给了我:致命错误:在非对象上调用成员函数 load()
  • var_dump($row2['CREATIVE']) 说什么?
  • resource(6) 类型(流)
  • 您的 OCI 包装器是如何实现的? current 在你的 $oci->query 中给出了什么?

标签: php sql oracle blob


【解决方案1】:

我终于修好了。

现在的代码如下所示:

$stmt = $dbcon->prepare( 'SELECT CREATIVE FROM creative WHERE id = 10314612'); 
$stmt->execute(); 
$res = $stmt->fetchAll( PDO::FETCH_ASSOC ); 

for( $i=0; $i<count($res); $i++ ){ 
  $data = stream_get_contents( $res[$i]['CREATIVE'] ); 
} 

感谢路人的帮助。

我不明白它为什么起作用。我只是从 php.net 上的一个示例中复制了上述内容

如果有人知道为什么,如果他们能在这里发布就太好了:)

【讨论】:

    猜你喜欢
    • 2012-01-25
    • 1970-01-01
    • 2014-09-08
    • 1970-01-01
    • 2014-10-02
    • 1970-01-01
    • 2013-08-09
    • 2014-05-24
    • 2014-09-24
    相关资源
    最近更新 更多