Я рефакторинг некоторого старого кода, включая переписывание основных запросов MySQL для использования PDO.
Следующее прекрасно работает во всех браузерах и для всех типов изображений:
$query = 'SELECT image FROM image WHERE imageid=' . $image_id;
$result = mysql_query($query, $db_conn); querycheck($result);
header("Content-type: image");
echo mysql_result($result, 0);
К сожалению, однако я переписываю его с помощью PDO, он не работает. Я просмотрел всю документацию PDO и стандартный поиск в Интернете, но ни один из советов / решений не сработал.
Как можно легко получить и получить изображение из MySQL с помощью PDO и отобразить его?
Редактировать 1:
Мэтью Ратцлофф дает то, что должно быть очевидным ответом ниже, но это не работает.
Вот фактический код, который я тестирую с помощью PDO (и я перепробовал много вариантов / параметров):
$connectstring_temp = 'mysql:host=' . $A . ';dbname=' .$B;
$dbh_temp = new PDO($connectstring_temp, $login, $password);
#$dbh_temp->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
#$dbh_temp->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY,true);
$sql = "SELECT image FROM image WHERE imageid=" . $image_id;
$query = $dbh_temp->prepare($sql);
$query->execute();
$query->bindColumn(1, $image, PDO::PARAM_LOB);
$query->fetch(PDO::FETCH_BOUND);
header("Content-Type: image");
echo $image;
Я сохранил тот же синтаксис, хотя для окончательного кода $ image_id должен быть передан в качестве параметра. Код выше НЕ работает. PDO отлично работает для всех других запросов всех типов.