Mein Problem: Das Lesen von BLOB mit Hilfe der PDO-Oracle-Treiber (PDO_OCI)
liefert für das Stream-Handle ($data['BLOBVALUE']) den Wert NULL. Das Feld enthält gültige Daten, die ich z.B. mit HORA angezeigt bekomme.
Zum Test habe ich das folgende PHP-Script benutzt:
<?php
error_reporting(E_ALL);
$dsn = 'oci:dbname=mydb;charset=UTF8';
$user = 'myuser';
$password = 'mypw';
$pdo = new PDO($dsn, $user, $password);
$stmt = $pdo->prepare('SELECT value_b blobvalue FROM tab_blob WHERE id=2128');
$stmt->execute();
// BLOB lesen
$data = $stmt->fetch(PDO::FETCH_ASSOC);
$blob = stream_get_contents($data['BLOBVALUE']);
header('Content-Type: image/jpeg');
print $blob;
?>
Das Problem tritt aber speziell bei einer 64-Bit Linux-Installation auf.
- PHP 5.2.9
- Apache 2.2.11
- Suse Linux X86-64
- Instant Client 11.1
- Oracle 10g Release 10.2.0.4
Tests auf anderen Systemen wie WIN32, Linux32 mit analoger Installation zeigten dieses Problem nicht.
Kann mir jemand helfen, oder hat ein ähnliches Problem?
Vielen Dank im voraus.
liefert für das Stream-Handle ($data['BLOBVALUE']) den Wert NULL. Das Feld enthält gültige Daten, die ich z.B. mit HORA angezeigt bekomme.
Zum Test habe ich das folgende PHP-Script benutzt:
<?php
error_reporting(E_ALL);
$dsn = 'oci:dbname=mydb;charset=UTF8';
$user = 'myuser';
$password = 'mypw';
$pdo = new PDO($dsn, $user, $password);
$stmt = $pdo->prepare('SELECT value_b blobvalue FROM tab_blob WHERE id=2128');
$stmt->execute();
// BLOB lesen
$data = $stmt->fetch(PDO::FETCH_ASSOC);
$blob = stream_get_contents($data['BLOBVALUE']);
header('Content-Type: image/jpeg');
print $blob;
?>
Das Problem tritt aber speziell bei einer 64-Bit Linux-Installation auf.
- PHP 5.2.9
- Apache 2.2.11
- Suse Linux X86-64
- Instant Client 11.1
- Oracle 10g Release 10.2.0.4
Tests auf anderen Systemen wie WIN32, Linux32 mit analoger Installation zeigten dieses Problem nicht.
Kann mir jemand helfen, oder hat ein ähnliches Problem?
Vielen Dank im voraus.