【问题标题】:creating a Cron Job to delete rows in mysql database when they are early than today创建一个 Cron 作业以删除 mysql 数据库中比今天早的行
【发布时间】:2013-07-19 07:55:00
【问题描述】:

我已经尝试了很多次,但我似乎无法破解它!

我已经在 cpanel 上设置了一个 cron 作业(每分钟进行一次测试),命令设置在

/php cronjobcommand.php

在我的 cronjobcommand 文件中,我有以下代码

<?php//conenct to your DB
$db_conn = mysql_connect('localhost', 'xxxxx', 'xxxxx');
mysql_select_db('xxxxx', $db_conn);


$result = mysql_query("DELETE FROM 'data' 
  WHERE 'offerends' < CURDATE()}
                               LIMIT 1", $db_conn);
    //might want to check here to see if the query executed successfully

?>

我希望它在每晚午夜删除日期小于今天的所有行。我究竟做错了什么?这项工作似乎发现我的文件很好,我收到了没有错误的电子邮件,但对数据库没有任何影响。

谢谢杰米。

【问题讨论】:

  • 查询在mysql中有效吗?为什么是极限 1? '}' 字符在做什么?
  • 首先:使用 mysqli 或 PDO,因为 MySQL 会被破坏。关于您的查询的两个问题:为什么是 } 和 limit 1?
  • ... or trigger_error(mysql_error());(仅用于测试)。

标签: php mysql cron


【解决方案1】:

使用 Adminer 或 PHPMyAdmin 对您的数据库运行此操作

SELECT * FROM 'data' WHERE 'offerends' < CURDATE() LIMIT 1

这将为您提供匹配的行,然后您可以使用此查询进行调试,这可能更容易。

您的 DELETE 查询中似乎还有一个流浪的 }

【讨论】:

  • 非常感谢你们!在你的帮助下,我设法让它工作了!喜欢这个地方!
猜你喜欢
  • 2012-11-10
  • 1970-01-01
  • 2018-10-27
  • 1970-01-01
  • 2013-08-04
  • 2023-04-01
  • 2015-03-03
  • 1970-01-01
  • 2016-01-22
相关资源
最近更新 更多