在这里,我想从db中检索并显示图像

时间:2018-02-07 05:22:15

标签: php sql database

当我运行下面的代码时,它显示输出为加密符号,如 [[ ѥ 1}j i Ƥ ^i 췼5 l r Ejק R:!} = “”] Q [{nC6ZVv YJ> | 1-20#\ t hz`dvnWKFihҍz2]

我在数据库中有超过5张图片。

发布您的建议

    define('MYSQL_ASSOC',MYSQLI_ASSOC);

    error_reporting(E_ALL);
    $db = mysqli_connect("localhost", "root", "","phpapi");
    $query = "SELECT image FROM images";
    $result = mysqli_query($db,$query);
    $num =mysqli_num_rows($result);

    while($row = mysqli_fetch_array($result, MYSQL_ASSOC))
    {

    echo "<img src=\"$row[image]\" alt=\"img\" />";

                                    }
    ?>

1 个答案:

答案 0 :(得分:1)

我认为$row[image]是图像内容,但图像src属性需要一个网址。你可以

A)将图片内容转换为数据网址,请参阅https://en.wikipedia.org/wiki/Data_URI_scheme(仅适用于小图片)或

B)指定一个指向另一个实际从数据库中提取图像的php文件的URL,例如

<img src="fetch-my-image.php?id=736">

并在fetch-my-image.php中输入:

// ...
$result = mysqli_query($db, "SELECT image FROM images WHERE id = /* id GET parameter here */");
// ...
echo $row[image]

当然你应该使用预备声明,我在这里没有详细说明。 您还应该在HTTP响应标头中设置正确的MIME类型。

fetch-my-image.php应该将图像内容完全回显到输出,仅此而已。