我打算设置一个cronjob来将所有零产品(数量= 0)状态更新为禁用(0)。
您建议将此脚本放在管理员或根目录下?
这种剧本有什么危险吗?
=============================================== ============
这是我正在尝试的SQL:
UPDATE product p
SET p.status = 0
FROM product_to_store p2s, product p
WHERE p2s.product_id = p.product_id AND p.quantity=0 AND p.status=1 AND p2s.store_id=0
但是我对这个错误。
解!!!
UPDATE product p
JOIN product_to_store p2s ON p.product_id = p2s.product_id
SET p.status=0
WHERE p2s.store_id=0 AND p.quantity=0
答案 0 :(得分:1)
如果您要正确实现此功能,则需要在catalog
侧创建此功能。我建议使用vQmod添加cron函数,并通过密钥检查以确保没有人运行代码。例如,将其添加到/catalog/controller/common/home.php
public function cron() {
if(empty($this->request->get['key']) || $this->request->get['key'] != 'Your-Key-Here') die('ERROR');
// Run SQL update code
$this->db->query("
UPDATE
`" . DB_PREFIX . "product`
SET
`status` = IF( `quantity` < 1, 0, 1)
");
}
然后你打电话给http://yoursite.com/?route=common/home/cron&key=Your-Key-Here
来运行代码
答案 1 :(得分:0)
只要cron有权访问目录,您就可以将文件放在任何需要的位置。存储它的位置没有区别。我总是建议用这种脚本运行一些测试,但如果你正确编码,不应该有任何不良副作用。
我个人认为将cron运行的文件存储在一个单独的文件夹中是有意义的,以便以后更容易找到它们,因为您可以为此文件夹设置所有权为cron。 (但这更基于意见)。