首页 > 解决方案 > 删除已删除图像的图像 ID

问题描述

我从我的 ftp 文件夹中删除了一些图像,但在我的 SQL 数据库中,产品仍然链接到这些图像,因此在我的商店中它们变成了空白图像。我想知道我的数据库有一种方法可以检查文件是否存在,如果不清除图像表上的字段。

希望我能解释一下自己。

编辑:使用 phpmyadmin 的提问者建议(见评论)“这是来自网站的数据库。我使用 plesk,所以我认为它是 MySQL。

标签: mysqldatabaseimageopencartplesk

解决方案


您可以在 OpenCart 框架中执行此操作,如下所示:

打开这个文件:

admin\controller\common\header.php

寻找:

$data['logged'] = true;

之后添加:

// Select all products with image
$query = $this->db->query("SELECT product_id, image FROM " . DB_PREFIX . "product WHERE image <> ''");
if ($query->num_rows) {
    foreach ($query->rows as $product) {
        // If product image does not exists, update product and set image to ''
        if (!is_file(DIR_IMAGE . $product['image'])) {
            $this->db->query("UPDATE " . DB_PREFIX . "product SET image = '' WHERE product_id = '" . (int)$product['product_id'] . "'" );
        }
    }
}

现在访问管理面板中的页面。

注意:您可能需要清除修改缓存。转到扩展/修改/单击刷新按钮。

完成后,您不需要上面的代码,将其从 header.php 中删除


推荐阅读