mysql - 删除已删除图像的图像 ID
问题描述
我从我的 ftp 文件夹中删除了一些图像,但在我的 SQL 数据库中,产品仍然链接到这些图像,因此在我的商店中它们变成了空白图像。我想知道我的数据库有一种方法可以检查文件是否存在,如果不清除图像表上的字段。
希望我能解释一下自己。
编辑:使用 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 中删除
推荐阅读
- node.js - 在 Node.js 的其他模块中通过引用使用数组是否绝对是这种情况?
- python - 如何在数组数组中巧妙地转换 Pandas Dataframe?
- javascript - 如何循环遍历 htmlcollection 对象?
- r - ggplot2中条形图条的不同颜色
- java - IntelliJ 中单元测试的 Java 9 模块问题:不能需要 JUnit Jupiter
- java - URI 类的 Java 检测:添加依赖项会引发 ClassNotFoundException
- postgresql - pgadmin 4.28 数据库还原未完成
- javascript - “requestOptions”未定义
- python - 如何通过深度学习预测未来价值?
- c# - C# 转到循环的开头(继续还是中断?)