2013-04-24 26 views
0

我是非常新的php/mysql。到處搜索後,我在這裏問:我的客戶端爲我提供了一個txt文件,現在我需要一個腳本來頻繁運行,以便txt新數據文件能夠運行,並且同時更新數據庫。如何在特定的時間運行PHP文件並自動更新數據庫字段

我讀過的一個選項是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

在指定時間內使用cron job運行php文件 – 2013-04-24 16:17:44

+0

謝謝先生,但我無法使用cron整天我已經搜索了這個,但客戶端否認我只能使用php,否則我可以做如果可能的話用ajax或jquery,無論如何謝謝你審查我的問題。 – 2013-04-24 16:22:25

+1

請只將代碼放在代碼標籤中。 Crontab是真正實現它的唯一方法。 – 2013-04-24 16:24:56

回答

0

你不一定需要調度的任務/科雷要在Web服務器上運行。 您可以在您的網絡服務器上安裝PHP文件,並在另一臺計算機上安裝調度任務或cron腳本(通過HTTP GET或SSH終端),這可以解決您的問題。

您也可以在2個不同的客戶端上安排此調用以獲得冗餘,並且將標誌(當天)設置爲true以便保證PHP腳本每天僅運行一次。

當我指的標誌我的意思是數據庫行,文件中的值或任何其他方式來檢查該腳本已在當天運行的 。

+0

實際上我需要的腳本經常運行,應該不會在一天內多次運行.. – 2013-04-24 16:47:54

+0

如果有些1可以幫助我使用AJAX或JQUERY,這也是非常令人愉快的,仍然爭先恐後地尋找這樣的代碼 – 2013-04-25 05:53:41

+0

@普雷拉克戴夫使用全部大寫鎖定是不好的禮節。 – 2013-04-25 10:28:36

1

您的客戶需要了解cron是解決此問題的正確方案。如果您的腳本需要定期運行,cron是實現它的方法。

如果你無法說服他,還有兩個不太理想的選擇。首先是讓你的腳本run一直沒有退出。它會休眠一段時間,醒來,檢查當前時間是否與計劃的運行時間相匹配,然後採取相應措施。

其次是利用在線調度服務在指定的時間通過HTTP請求執行您的腳本。在線調度服務將在後臺使用cron,但您的客戶不需要知道這一點。

相關問題