删除已删除图像的图像ID

Delete image id for deleted image

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

希望我能解释一下。

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

您可以在 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

中删除