2012-12-10 7 views
1

伊夫更新錯後得到了這樣的文字:的strtotime PHP函數輸出的PHP文件的好時機,但在MySQL

mysql_connect('localhost', 'xxx', 'xxx'); 
mysql_select_db('xxx'); 

$sql = "SELECT * FROM rl_cronjobs"; 
$sql = mysql_query($sql); 
$row = mysql_fetch_array($sql); 

$sunday = $row['next_sunday']; 
$today = date('Y-m-d'); 


if($sunday == $today){ 
    $sql = "DELETE * FROM xxx WHERE stala != 1"; 
    $sql = mysql_query($sql); 
    echo $nextsunday; 
    $nextsunday = strtotime("next Sunday"); 
    $nextsunday = date('Y-m-d', $nextsunday); 
    $sql = "UPDATE xxx SET next_sunday = $nextsunday"; 
    $sql = mysql_query($sql) or die (mysql_error()); 
    echo $nextsunday; 
} 

而且在MySQL它的價值是:1984年 我需要它是未來的正常日期星期日

MySQL錶行的類型是varchar,因爲當我設置tu日期時它不會更新。任何幫助?

+0

'1984 = 2012 - 12 - 16' :) –

回答

1

不要在varchar字段中存儲日期。 Mysql擁有日期,日期時間和時間戳字段,並且使用它們打開了一個全新的可能性。例如。你的「下一個星期日」計算可以簡單地完成:

UPDATE xxx SET next_sunday = NOW() + INTERVAL (8 - DAYOFWEEK(NOW())) DAY 

沒有涉及PHP時間函數。請注意,這個特殊的功能始終會選擇真正下週日,所以如果你在一個星期天運行這段代碼,你會得到以下週的週日,而不是‘今天’,例如:

'2012-12-08' (Saturday) -> '2012-12-09' 
'2012-12-09' (Sunday) -> '2012-12-16' 
'2012-12-10' (Monday) -> '2012-12-16' 

同時,請注意,您正在試圖在定義之前回顯$nextsunday

1

看起來像是在更新查詢中缺少一些引號"'。你大概的意思是寫:

$sql = "UPDATE xxx SET next_sunday = '$nextsunday'"; 

旁註:myslq_*功能deprecated,你不應該在新的代碼中使用它們了。

+0

即時學習OOP和PDO,所以我不會長時間使用它 –