PDO查询BLOB给出损坏的图像

时间:2014-03-19 19:54:05

标签: php mysql pdo blob

我知道这里已经问过几次,但根据其他问题无法弄清楚如何解决这个问题。

我正在尝试显示MySQL数据库中表格的所有图像。图像都已成功存储为BLOB。 image_type也正确存储为image/jpegimage/png但是,在尝试显示图片时,它只返回一个损坏的图片图标。当我删除标题时,它会显示一堆字符。我很擅长使用PDO,之前从未使用过数据库中的图像。任何帮助将不胜感激。

以下是显示图像的代码

<?php
 /*** connect to the database ***/
    $dbh = new PDO("mysql:host=localhost;dbname=db", 'user', 'pass');

  /*** set the PDO error mode to exception ***/
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

  /*** The sql statement ***/
    $sql = "SELECT image, image_type FROM images";

  /*** prepare the sql ***/
    $stmt = $dbh->prepare($sql);

  /*** exceute the query ***/
    $stmt->execute(); 

  /*** set the fetch mode to associative array ***/
    $stmt->setFetchMode(PDO::FETCH_ASSOC);

  /*** set the header for the image ***/
    $array = $stmt->fetch();

  /*** check we have a single image and type ***/
    if(sizeof($array) == 2) {
    /*** set the headers and display the image ***/
      header("Content-type: ".$array['image_type']);

    /*** output the image ***/
      echo $array['image'];
    } else {
        throw new Exception("Out of bounds Error");
    }
?>

0 个答案:

没有答案