我是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
答案 0 :(得分:1)
您的客户需要了解cron是解决此问题的正确方法。如果您的脚本需要定期运行,那么cron就是完成它的方法。
如果你无法说服他,还有另外两个不太理想的选择。第一种是在不退出的情况下始终制作脚本run。它将休眠一段时间,唤醒,检查当前时间是否与预定的运行时间匹配,并采取相应的行动。
第二种方法是利用在线调度服务在指定时间通过HTTP请求执行脚本。在线调度服务将使用cron,但您的客户不需要知道。
答案 1 :(得分:0)
您不一定需要在Web服务器上运行计划任务/ CRON。 您可以在Web服务器上安装PHP文件,并在另一台调用PHP脚本(通过HTTP GET或SSH终端)的计算机上安装计划任务或cron脚本,这样可以解决您的问题。
您还可以在2个不同的客户端上安排此调用以获得冗余,并将标志(当天)设置为true,以便保证PHP脚本每天只运行一次。
当我指的是标志时,我指的是数据库行,文件中的值或其他任何检查方式 该脚本已于当天运行。