2010-12-17 17 views
0

私のコードで何が間違っているのですか?テストすると出力が書き込まれますが、ブラウザには警告が表示されます: "警告:odbc_fetch_row 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

場合は、単に推測が、私は、クエリ文字列内の文字N '、 '\ rを\を失うだろう – Phil

+0

SQLは正常に動作しますが、私はすでにtxtファイルの出力をチェックし、データベースエクスプローラでテストします。 – aintgel

答えて

1

使用条件

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

if($result) 
{ 

     while(odbc_fetch_row($result)){ 

     } 
} 
+0

まだ同じ警告が出ています。 – aintgel

+0

次に@またはwhile($ row = odbc_fetch_row($ result))を使用してください。 –

+1

@odbc_fetch_row($ result) –