使用PHP PDO&amp ;;迭代结果集时结果丢失MySQL的

时间:2013-08-06 08:50:10

标签: php mysql image memory pdo

我正在开发一个带图片库的网站。我想在一个页面上列出所有图像。所以我写了下面的脚本。

try{
    $dsn = 'mysql:host=localhost;dbname=testdatabase';
    $conn = new PDO($dsn, 'user', 'xxxx');
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $gallery_select_stmt = $conn->prepare("SELECT image_id FROM images ORDER BY image_id ASC");
    $gallery_select_stmt->execute();
    while ($row = $gallery_select_stmt->fetch(PDO::FETCH_ASSOC)) {
        foreach ($row as $key => $value) {
            echo '<div class="imageBox">';
            echo '<a href="photo.php?id='.$value.'"><img src="image.php?id='.$value.'&thumb=1"/></a>';
            echo '</div>';
        }
    }
} catch(Exception $ex){
    error_log("Issue processing the gallery: ".$ex);
}

我正在测试该网站有6张图片!但第一张图片没有显示。我用Google搜索了问题,并在stackoverflow中发现了一些类似的问题。但他们都没有帮助我!

我遇到的主要问题是当我执行上面的代码替换

echo '<a href="photo.php?id='.$value.'"><img src="image.php?id='.$value.'&thumb=1"/></a>';

部分用这样的东西

echo '<img src="images/'.$value.'"/></a>';

代码完美无缺。显示所有6个结果。

我必须承认这些图像中的大部分都非常大(在4到12 MB之间变化,但会显示较大的图像)。这是一个记忆问题吗?

1 个答案:

答案 0 :(得分:0)

服务器中存在内存问题。当我重新启动Apache并重新运行脚本问题得到解决。 @ N.B。的建议是正确的,图像太大了,无法在阵列中处理。