2014-12-05 24 views
0

我現在有這翻出員工時區的成員從表中(「時區」)此表有PHP友好的變量,如代碼:「歐洲/倫敦」時區換PHP/MySQL的

我一直在努力在我的連接文件中設置時區(連接到數據庫之後),但似乎沒有改變。

$timezonechanger = $db->query(" SELECT * FROM `timezones` WHERE staffid='{$user->data['id']}'"); 
$timenum = $db->num($timezonechanger); 
$timechange = $db->assoc($timezonechanger); 
if($timenum==0){ 
date_default_timezone_set('Europe/London'); 
    putenv("TZ=Europe/London"); 
}else{ 
putenv("TZ=$timechange[timezone]"); 
date_default_timezone_set('$timechange[timezone]'); 
} 

以上不工作,但如果我是到時區設置是這樣的:

date_default_timezone_set('Pacific/Midway'); 

沒有通過使用從表中的數據拉這個,它工作正常。

我不知道是怎麼回事錯了,我已經echod表中的數據,以確保信息肯定是被拾起......

任何幫助,將不勝感激

+0

Err ...我很難與'num'和'assoc'是什麼。對於'num'你確定你不是指'num_rows'?對於'assoc' - 'fetch_assoc'?據我所知,'num()'和'assoc()'不是PHP/MySQL核心函數。 – 2014-12-05 03:56:05

+0

他們做同樣的事情,我認爲這是PDO_MYSQL(我用於查詢等的版本) – Andrew 2014-12-05 03:59:23

+0

你是什麼意思「你認爲」? http://php.net/manual-lookup.php?pattern=num&scope=quickref - http://php.net/manual-lookup.php?pattern=assoc&scope=quickref非核心功能。除非你有一些自定義功能。 – 2014-12-05 03:59:55

回答

0

嘗試本作你是在字符串中傳遞一個php變量,有時由於服務器設置導致問題。

順便說一下,使用php變量而不用字符串連接它們不是一個好習慣。

$timezonechanger = $db->query(" SELECT * FROM `timezones` WHERE staffid='{$user->data['id']}'"); 
    $timenum = $db->num($timezonechanger); 
    $timechange = $db->assoc($timezonechanger); 
    if($timenum==0) 
    { 
     date_default_timezone_set('Europe/London'); 
     putenv("TZ=Europe/London"); 
    } 
    else 
    { 
     $put_env = 'TZ='.$timechange['timezone']; 
     $default_str = $timechange['timezone']; 
     putenv($put_env); 
     date_default_timezone_set($default_str); 
    } 

請讓我知道反饋。