我正在爲尋寶尋找web應用程序所有連接到在線服務器都是正確的,應用程序工作正常,並保存並從/到網上獲取數據mysql數據庫。php和mysql代碼在localhost上工作,但在線服務器存在問題
在我的應用程序註冊(開始時間)和會話(結束時間)會話,其中(結束時間)意味着用戶已經完成了比賽。
我正在從這裏(結束時間)的冠軍數和組織基礎上有贏家(結束時間)
的問題是,本地主機(使用XAMPP)我得到的贏家號碼正確。而如果我上傳我的工作我的主機(Linux中的cPanel)我總是贏家爲0(即使它不是第一個)
這是結果,我上網
而如果我在本地主機上我得到正確的贏家數量
這是代碼來獲得冠軍:
function getWinner($uid, $set){
$db = new Db();
$winner = 0;
$query = "SELECT endtime FROM eid_race WHERE id = '$uid' AND endtime IS NOT NULL";
$result = $db->query($query);
if(sizeof($result) == 0){
$updateEndtime = "UPDATE eid_race SET endtime = UNIX_TIMESTAMP() WHERE id = '$uid'";
$db->execute($updateEndtime);
}
$query = "SELECT COUNT(id) FROM eid_race WHERE id <> '$uid' AND endtime IS NOT NULL AND endtime < (SELECT endtime FROM eid_race WHERE id = '$uid') AND questionset = '$set'";
$result = $db->query($query);
echo ' result: ' . $result[0][0];
if(sizeof($result) == 1){
$winner = $result[0][0];
echo ' winner: '.$winner;
}
echo ' winner after: '.$winner;
return $winner+1;
}
,當我直接測試上的phpmyadmin查詢我得到正確的結果,但PHP的結果還是0
SELECT COUNT(id) FROM eid_race WHERE id <> '577dd5759fa67' AND endtime IS NOT NULL AND endtime < (SELECT endtime FROM eid_race WHERE id = '577dd5759fa67') AND questionset = 'A'
檢查
current datetime
將與服務器的phpinfo()測試文件和比較PHP/MySQL的版本。 –@SumanSingh是對的,既然你正在處理'mysql'中的'datetime'和'timestamp',那麼你應該檢查服務器'timezone'和'date time settings'。 – Avishek
@SumanSingh ** localhost:** PHP版本5.6.15,mysql客戶端API版本mysqlnd 5.0.11-dev,**聯機服務器:** PHP版本5.3.29,mysql客戶端API版本5.6.30 - –