所以我正试图将新产品导入我的网店,但我真的需要将9000个产品从一个特定的id删除到最后一个。另外,如果该方法将删除与产品相关的图片,那将是非常好的。
fsi0uk1n1#
下面的代码就是基于这个答案[solved]从数据库中删除大量产品(10420个产品)。我刚加了个条件 WHEREid_productBETWEEN 666 AND 9666 . 你应该把你的上下限放在那里。代码在每次运行时删除1000个产品以避免超时。
WHERE
BETWEEN 666 AND 9666
<?php require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'config.inc.php'); include(dirname(__FILE__) . '/init.php'); $res = Db::getInstance()->executeS('SELECT `id_product` FROM `'._DB_PREFIX_.'product` WHERE `id_product` BETWEEN 666 AND 9666 ORDER BY `id_product` DESC LIMIT 1000 '); echo "<p>(".date('Y/m/d H:i:s').") Starting to delete products...</p>"; if ($res) { foreach ($res as $row) { echo "<p>(".date('Y/m/d H:i:s').") Deleting product with ID <b>".$row['id_product']."</b>..."; $p = new Product($row['id_product']); if(!$p->delete()) { echo " <span style='color: red'>Error deleting this product!</span></p>"; } else { echo " <span style='color: green'>DELETED</span></p>"; } } } ?> <script> window.location.reload(); </script>
1条答案
按热度按时间fsi0uk1n1#
下面的代码就是基于这个答案[solved]从数据库中删除大量产品(10420个产品)。
我刚加了个条件
WHERE
id_productBETWEEN 666 AND 9666
. 你应该把你的上下限放在那里。代码在每次运行时删除1000个产品以避免超时。