【问题标题】:How can I echo an array of images from a PHP mySQL query?如何从 PHP mySQL 查询中回显一组图像?
【发布时间】:2017-08-28 15:09:50
【问题描述】:

我在 mySQL 数据库中有一个名为“images”的表。此表有 7 行 2 列。列是:“id”和“image”(BLOB 类型)。我想将此表中的所有图像作为数组回显。

这是我尝试使用的代码:

<?php
$link = mysqli_connect("localhost", "xxxx", "xxxx", "xxxx");
if(mysqli_connect_error()) {
    die ("Error message");
}
mysqli_query($link, $query);
$query = "SELECT image FROM images";
$i = 1;
if ($result = mysqli_query($link, $query)) {
    while ($row = mysqli_fetch_array($result)) {
        ${"image".$i} = $row['image'];
        $i++;
    }
    $array = array($image1, $image2, $image3, $image4, $image5, $image6, $image7);
    echo json_encode($array);
}
?>

我在运行此代码时得到一个空白页。

如果您能给我任何关于如何解决此问题的想法,我将不胜感激。

只是为了解释为什么我需要将这些图像作为数组回显:我将在 JS 文件中使用 AJAX 将这些图像放在另一个 HTML 文件中的特定 div 中。

【问题讨论】:

    标签: php mysql arrays blob


    【解决方案1】:

    我会首先尝试 print_r 你的数组,看看它是否存在。 http://php.net/manual/en/function.print-r.php

    之后,如果有一个空数组的输出,您总是可以在 while 循环中将每个图像推送到您的数组中。因此,不要将自己限制在一定数量的图像上。 http://php.net/manual/en/function.array-push.php

    您可以在将来帮助减少或至少调试错误的另一个步骤是打开调试。 https://stackoverflow.com/a/21429652

    【讨论】:

    • 感谢您的提示。我打印了我的数组,每个数组值都有大量的字符。所以它存在,但它不显示图像。
    【解决方案2】:
    <?php
    ini_set('display_errors', 1);
    $link = mysqli_connect("localhost", "xxxx", "xxxx", "xxxx");
    if(mysqli_connect_error()) {
        die ("Error message");
    }
    $query = "SELECT image FROM images";
    mysqli_query($link, $query);
    $i = 1;
    if ($result = mysqli_query($link, $query)) {
        while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
            $aImages[] = $row['image'];
        }
    
        echo json_encode($aImages);
    }
    ?>
    

    【讨论】:

    • 感谢您的帮助,但我仍然得到一个空白页
    • 你能把这个ini_set('display_errors', 1);添加到&lt;?php之后的首页
    • 我添加了 ini_set('display_errors', 1); 并得到“警告:mysqli_query():第 7 行的 'php 文件地址'中的空查询”。对不起。我是编程初学者。什么是sn-p代码?我试图在网上找出它是什么,但我不明白。如果我使用我发布的原始代码,当我打印数组时,我会得到大量字符的图像
    • 你在分配 $query 之前调用 mysqli_query
    • 是的。你说得对。现在,我删除了mysqli_query($link, $query);,它没有显示任何其他警告消息。但我仍然没有得到图像
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-18
    • 2021-09-02
    相关资源
    最近更新 更多