2016-02-26 61 views
0

我試圖創建一個基於幾個月份和日期值我使用PHP直接拉從用戶機器的SQL查詢。爲什麼不將這些代碼運行在PHP 7.0

我的問題是,我的代碼在我的測試服務器上運行FINE(wampp),但掛在生產服務器(IIS8)上。

基本上,我有幾個If,然後語句將變量與其他變量進行比較,如果條件滿足,他們利用另一個特定的變量來創建一個SQL語句。

我有這個同樣的網站上正常運作其他ODBC/PHP的功能,但它是這個代碼和掛在服務器另一個類似的功能。

任何幫助表示讚賞。

function tmlySales() { // last year, this month sales 

     include('odbc_connect.php'); 

     $salesPersonID = $_SESSION['SESS_SAP_ID']; 

     $conn=odbc_connect($server,$user,$pass);   

     $m = date('m'); 

     if($m == 01) { 

      $month = 'SSSA10'; 

      $year = date('Y', strtotime('-1 year')); 

     } 

     if($m == 02) { 

      $month = 'SSSA11'; 

      $year = date('Y', strtotime('-1 year')); 
     } 

     if($m == 03) { 

      $month = 'SSSA12'; 

      $year = date('Y', strtotime('-1 year')); 

     } 

     if($m == 04) { 

      $month = 'SSSA01'; 

      $year = date('Y'); 

     } 

     if($m == 05) { 

      $month = 'SSSA02'; 

      $year = date('Y'); 

     } 

     if($m == 06) { 

      $month = 'SSSA03'; 

      $year = date('Y'); 

     } 

     if($m == 07) { 

      $month = 'SSSA04'; 

      $year = date('Y'); 

     } 

     if($m == 08) { 

      $month = 'SSSA05'; 

      $year = date('Y'); 

     } 

     if($m == 09) { 

      $month = 'SSSA06'; 

      $year = date('Y'); 

     } 

     if($m == 10) { 

      $month = 'SSSA07'; 

      $year = date('Y'); 

     } 

     if($m == 11) { 

      $month = 'SSSA08'; 

      $year = date('Y'); 

     } 

     if($m == 12) { 

      $month = 'SSSA09'; 

      $year = date('Y'); 

     } 

     $sql = "SELECT ".$month." FROM REPSA WHERE SSRP#1=".$salesPersonID." and SSYEAR =".$year.""; 

     $result = odbc_exec($conn,$sql); 

     while($row = odbc_fetch_array($result)) { 

      $tmlySales = $row[$month]; 

      $currency = number_format($tmlySales,2); 

      echo '$ '.$currency.''; 

    } 
} 
+2

「掛起」相當廣闊。究竟發生了什麼?在PHP和服務器本身啓用錯誤報告,檢查日誌文件等,並將它們發佈在問題 – kero

+2

你看過錯誤日誌嗎? –

+0

我查看了服務器上的錯誤日誌,它並沒有給我提供任何好的信息,我可以告訴它發生了500錯誤,我認爲這是內部服務器錯誤,只是不知道爲什麼。一旦我刪除這個功能,它似乎很好。通過「掛起」我的意思是它顯示頁面的第一行,即聲明HTML文檔類型。然後什麼也沒有.. –

回答

0

沒有錯誤,這是相當困難的。 首先我要說

$m = date('m'); 

回報字符串沒有一個八進制。

而不是做的:

if($m == 02) 

你應該這樣做(見引號):

if($m == '02') 

如果你需要一個更好的答案,提供更多的信息。

+0

謝謝,原來它是PHP 7.0中的一個已知的錯誤,這是我的開發機器和生產服務器之間的差異。打開生產服務器中的錯誤報告,錯誤是八進制。不記得具體是什麼,我會嘗試這個,看看它是否有效。 –

相關問題