删除已删除图像的图像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
中删除
我从我的 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
中删除