2012-03-06 16 views
0

我想自動執行下面的PHP腳本來自動刪除表中的一行3天后。但是,腳本似乎不起作用,即使查詢已經產生了正確的結果。我試圖手動運行它,並且它也工作。我不知道我是否已經正確地寫劇本,但這裏的代碼:自動執行MySQL查詢從PHP不工作

<?php 
require_once('../../resources/db_connect.php'); 
$query = "DELETE FROM user_orders WHERE date_order < DATE_SUB(CURDATE(), INTERVAL 3 DAY) AND ID_status_order = 1"; 
$result = @mysql_query($query); 
?> 

我在Windows上使用XAMPP。我試圖通過Windows任務計劃執行它,但我不認爲它的工作。任何其他想法?

乾杯

+0

嘗試刪除@ mysql_query前的腳本並手動運行腳本以查看錯誤 – SERPRO 2012-03-06 10:22:30

+0

歡迎使用堆棧溢出!您在查詢中沒有執行任何錯誤檢查,因此如果查詢失敗,那麼您的腳本將會中斷也就不足爲奇了。如何做到這一點在[mysql_query()'](http://php.net/mysql_query)手冊或本[參考問題。](http://stackoverflow.com/questions/6198104/reference什麼是一個完美的代碼樣本使用的MySQL擴展) – 2012-03-06 10:22:59

+0

刪除@,你會發現錯誤。 – Kuba 2012-03-06 10:23:17

回答

0

隱藏錯誤不夠好。 Thry先刪除@,看看你有什麼錯誤。回來並給出錯誤。

+0

沒有得到任何錯誤。感謝提示隊友。我想現在我需要知道如何在Windows中自動運行這個腳本 – gaban 2012-03-06 11:48:42

0
echo mysql_query($query) or mysql_error() 
0

您沒有進行任何錯誤檢查,並且@在命令前面甚至主動抑制錯誤。使用此檢查與您的查詢或數據庫連接錯誤:

mysql_query($query) or die(mysql_error()); 

如果您要檢查您的查詢,但不希望它刪除所有內容,添加另一個條件是:

... AND 1=0 

這總是假的,因此沒有東西被刪除。 MySQL仍然會檢查你的查詢並給你提供錯誤,例如,某些字段或表格是未知的。