2012-02-08 53 views
1

我想在特定的时间我怎么能执行一个查询时,时间=此

运行一个查询,例如,如果时间是五点10分25秒执行这个查询

它下面的代码

尝试
date_default_timezone_set("Asia/Calcutta"); 
$time=date("h:i:s"); 
if ($time=='04:10:00') 
{ 
$sql="insert into bsechartsdata (TickerPlantCode,DateTime,OpenPrice,HighPrice,LowPrice,ClosePrice) select DISTINCT TickerPlantCode,DateTime,OpenPrice,HighPrice,LowPrice,ClosePrice from bsepricequotes_latest"; 
$query=mysql_query($sql); 
} 

但该查询未执行 我在哪里做错了?

+0

检查'mysql_error'它第一次? – maxjackie 2012-02-08 09:31:28

回答

1

这难道不是最好使用cron作业呢? http://www.pantz.org/software/cron/croninfo.html

如果您在“主机”上没有对此的支持,那么您可以创建一个需要完成的作业的数据库。如果数据库中的时间过去了,那么你要完成这个任务。

1

如果您将这种类型的代码集成到Web应用程序中,您需要一个人(并且只有一个人)在您想要的时候准确提出请求,因此听起来不像 那样。 Linux下的研究cron作业(或计划任务,如果你使用的是Windows服务器)

0

当前时间戳/时间加入到这里:

$time=date("h:i:s", time()); 
+0

这是第二个参数的默认值.. – mishu 2012-02-08 09:34:14

+0

@mishu:啊,好的。直到手册说明结束时才阅读。 – djot 2012-02-08 09:36:54

0

您最好使用cron job来运行将执行该查询的脚本。

像你这样的if语句会要求某人在那个确切的秒钟内运行该特定页面。

0

PHP代码必须由某种来源触发。 如果用户正好在点击您的网络服务器 04:10:00,查询将会执行。 但是你不能指望PHP采取你给它的指示,并记得在这样的指定时间执行一个过程。

总之 - 你需要建立一个Cron

0

您可以创建一个查询队列,以某种结构的表:

  • execute_after DATETIME
  • my_query TEXT

然后,只需创建一个每分钟运行一次的脚本(或每分钟多次运行)。然后你只需插入你想在队列中运行的查询,你的cronjob会在它应该执行时执行它!

0

您是否需要前导零或不是?

$time=date("H:i:s"); 
0

http://en.wikipedia.org/wiki/Cron +你还需要在每次cron运行你的时间来检查当前时间, 每当当前时间是小于你的时间,那么你必须执行查询。

,你必须需要设置标志这(如果未设置标志,则只有运行查询)