2012-09-11 38 views
0

我正在使用cron作業從事務表中獲取總數並更新另一個表。 在我的cron工作電子郵件中,我回復說已完成任務,但沒有看到數據發生變化。數據未被cron作業更新

<?php 

try { 
    $dbh = new PDO("mysql:host=localhost;dbname=the", 'the', '1'); 
     $query = "UPDATE Test a 
       INNER JOIN 
       (
        SELECT ID, SUM(Total) as Total, 
        FROM TestTrans 
        WHERE Status = ? 
        Group By ID 
       ) b 
       ON a.ID = b.ID 
     SET a.Total = b.Total 
    Where a.Total > b.Total"; 

    $iStatus = 1; 
    $stmt = $dbh->prepare($query); 
    $stmt->bindParam(1, $iStatus); 

    $stmt->execute();  

    echo 'Task Completed'; 
    } 
    catch(PDOException $e) 
    { 
    echo $e->getMessage(); 
    } 


    ?> 
+3

它是否更新數據庫,如果你手動運行它? – moopet

+0

從命令行運行代碼時代碼是否正常工作? SQL直接在數據庫上運行時是否工作? var_dump($ stmt-> errorInfo())'輸出什麼? – andrewsi

+0

您是否嘗試回顯SQL錯誤信息? 'var_dump($ STMT-> errorInfo());' –

回答

1

幾點建議:

  • 運行手動紙條,從同樣的方式做的cron命令提示符。例如php myscript.php myoptions。它工作嗎?
  • 添加一些記錄到你的cron作業:

*/5 * * * * PHP myscript.php myoptions >> /var/log/cronrun.log 2 &> 1

照照/var/log/cronrun.log文件的錯誤和線索/