Я пытаюсь получить изображение из BLOB, хранящегося в базе данных Oracle XE.
Чтобы проверить, «есть ли что-то там»:
Итак, я попробовал это с помощью PDO:
<?php
//carrega_foto_oracle.php?funcionario_id=10
include '..\conexao_oracle.php';
$stmt = $pdo->prepare("select mimetype, binario from foto where funcionario_id=?");
$stmt->execute(array($_REQUEST['funcionario_id']));
$stmt->bindColumn(1, $type, PDO::PARAM_STR);
$stmt->bindColumn(2, $blob, PDO::PARAM_LOB);
$stmt->fetch(PDO::FETCH_BOUND);
header("Content-Type: $type");
echo stream_get_contents($blob);
Мой браузер жалуется на «некоторые проблемы с моей картинкой», поэтому я попытался сбросить ресурс (перед функцией заголовка):
var_dump(stream_get_contents($blob));exit();
И в результате получается пустая строка: (
string(0) ""
Есть что-то, чего мне не хватает?
Заранее спасибо
РЕДАКТИРОВАТЬ: мое соединение:
<?php
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_EMULATE_PREPARES => false,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_CASE => PDO::CASE_LOWER //opcional: campos com nome minúsculo
];
$servidor = "localhost";
$usuario = "php";
$senha = "admin";
$service_name = "XE";
$sid = "XE";
$port = 1521;
$dbtns = "(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = $servidor)(PORT = $port)) (CONNECT_DATA = (SERVICE_NAME = $service_name) (SID = $sid)))";
$pdo = new PDO("oci:dbname=" . $dbtns . ";charset=utf8", $usuario, $senha, $options);