0

我是 php/mysql 的新手。在到处搜索之后我在这里问:我的客户为我提供了一个 txt 文件,现在我需要一个脚本来频繁运行,以便 txt 新数据文件将运行并同时更新数据库。

我读过的一个选项是 Cron,但我的客户拒绝了这个解决方案,所以我只能使用基于 PHP(或者,如果可能的话,ajax 或 jquery)的解决方案。

到目前为止我的代码:

<?php
$string = file_get_contents("mytest.php/test1.txt", "r");
$myFile = "E:/path/test.txt";
$fh = fopen($myFile, 'w') or die("could not open: .mysql_error());
fwrite($fh,$string);
fclose($fh);

// Here is the connection file
$sql=mysql_connect("localhost","root","");
if(!$sql) {
  die("couldnotconnect:", . mysql_error());
}
mysql_select_db("timer"); // databse name
$result=mysql_query("LOADDATAINFILE'$myFile'" ."INTOTABLEchangedtFieldsTERMINATEDBY''");
if (!$result) {
  die("couldnotload . " . mysql_error());
}
?>

但是这段代码不能正常工作。基本上只是另一个文本文件,我只想更新我的数据库,例如:

Database Field:

Name (varchar 250)
LastModification timestamp
4

2 回答 2

1

您的客户需要了解 cron 是解决此问题的正确方法。如果您的脚本需要定期运行,cron 是完成它的方法。

如果你无法说服他,还有另外两个不太理想的选择。第一个是让你的脚本一直运行而不退出。它将休眠一段时间,然后醒来,检查当前时间是否与预定的运行时间匹配,并采取相应的行动。

第二种是利用在线调度服务在指定时间通过 HTTP 请求执行您的脚本。在线调度服务将在后台使用 cron,但您的客户不需要知道这一点。

于 2013-04-24T16:31:39.153 回答
0

您不一定需要在网络服务器上运行计划任务/CRON。您可以在您的网络服务器上拥有 PHP 文件,并在另一台调用 PHP 脚本(通过 HTTP GET 或 SSH 终端)的机器上拥有计划任务或 cron 脚本,这将解决您的问题。

您还可以在 2 个不同的客户端上安排此调用以实现冗余,并将标志(当天)设置为 true,以保证 PHP 脚本每天只运行一次。

当我的意思是标志时,我的意思是数据库行、文件中的值或任何其他方式来检查该脚本是否已在当天运行。

于 2013-04-24T16:30:53.563 回答