2010-12-17 52 views
0

哪些錯誤在我的代碼,當我測試它的輸出變爲寫,但在我的瀏覽器顯示,說的「警告警告:odbc_fetch_row():37是不是在線729上的C:\ xampp \ htdocs \ webinterface \ requests.php中有效的ODBC結果資源「警告:odbc_fetch_row():37是不是一個有效的ODBC結果資源

我不知道這是什麼意思,sql語句結果在dbexplorer中很好。順便說一句,可能數據庫是悖論,並使用odbc連接我的PHP悖論。

有人能幫助我嗎?非常感謝你

我下面的代碼:

$connectionstring = odbc_connect(DB_DNS,DB_USER,DB_PASS); 
     $auditRequestNo  = ""; 
     $ar_requestno = ""; 
     $svemp1 = ""; 
     $svemp2 = "";    
     foreach($uArr as $arNo){     
      $ar_requestno .= (!empty($ar_requestno))? ",".$arNo : $arNo; 
      $auditRequestNo .= (!empty($auditRequestNo))? ",".sprintf("%08d", $arNo) : sprintf("%08d", $arNo); 
     } 

     $query = "SELECT SV_EmployeeNo,Sv_EmployeeNo2 \r\n". 
         "FROM AuthorizationRequests \r\n". 
         "WHERE ARNO IN (".$ar_requestno.") "; 
     $result = odbc_do($connectionstring, $query); 
     while(odbc_fetch_row($result)){ 
      $svemp1 = odbc_result($result,1); 
      $svemp2 = odbc_result($result,2); 
      switch(intval($s)){   
       case 1: // approved 
         if(empty($svemp1) and empty($svemp2)){ 
          $update_fields = "flag=0, DateApproved = { d '".date('Y-m-d')."' } , SV_EmployeeNo=".$_SESSION['uen']." "; 
          $update_query = "UPDATE AuthorizationRequests \r\n". 
               "SET ".$update_fields."\r\n ". 
               "WHERE ArNo IN(".$ar_requestno.")"; 
          $update_query = odbc_exec($connectionstring, $update_query); 
          odbc_close($connectionstring);        
         }else if(!empty($svemp1) and empty($svemp2) and $svemp1 != $_SESSION['uen']){ 
          $update_fields = "flag=".$s.", DateApproved2 = { d '".date('Y-m-d')."' } , SV_EmployeeNo2=".$_SESSION['uen']." ";        
          $update_query = "UPDATE AuthorizationRequests \r\n". 
               "SET ".$update_fields."\r\n ". 
               "WHERE ArNo IN(".$ar_requestno.")"; 
          $update_query = odbc_exec($connectionstring, $update_query); 
          odbc_close($connectionstring); 
         } 
        #}     
        break; 
       case 2: // rejected 
         $update_fields = "flag=".$s.", DateApproved = { d '".date('Y-m-d')."' }, SV_EmployeeNo=".$_SESSION['uen']." "; 
         $update_query = "UPDATE AuthorizationRequests \r\n". 
              "SET ".$update_fields."\r\n ". 
              "WHERE ArNo IN(".$ar_requestno.")"; 
         $update_query = odbc_exec($connectionstring, $update_query); 
         odbc_close($connectionstring); 
        break; 
       default: // reset 
         $update_fields = "flag=0, DateApproved=NULL, SV_EmployeeNo=NULL, DateApproved2=NULL, SV_EmployeeNo2=NULL"; 
         $update_query = "UPDATE AuthorizationRequests \r\n". 
              "SET ".$update_fields."\r\n ". 
              "WHERE ArNo IN(".$ar_requestno.")"; 
         $update_query = odbc_exec($connectionstring, $update_query); 
         odbc_close($connectionstring); 
        break; 
      } 
     } 
+0

只是一個猜測在這裏,但我會失去了'\ r \ N'在查詢字符串中的字符 – Phil 2010-12-17 03:58:46

+0

SQL工作正常,我已經檢查txt文件中的輸出並在數據庫瀏覽器中進行測試。 – aintgel 2010-12-17 05:55:52

回答

1

的使用,如果條件

$result = odbc_do($connectionstring, $query); 

if($result) 
{ 

     while(odbc_fetch_row($result)){ 

     } 
} 
+0

我仍然收到同樣的警告。 – aintgel 2010-12-17 05:51:24

+0

然後使用@或while($ row = odbc_fetch_row($ result)){ – 2010-12-17 06:54:51

+1

使用@odbc_fetch_row($ result) – 2010-12-17 07:06:04