Php [DB2forI5/OS]SQL0104-令牌?无效。有效令牌:),,SQL状态37000

Php [DB2forI5/OS]SQL0104-令牌?无效。有效令牌:),,SQL状态37000,php,sql,db2,Php,Sql,Db2,我在DB2查询中遇到问题: 我正在使用PHP和SQL Server构建db2查询,实际上我有30个查询可以完美工作 昨天我添加了一个新的查询,但它不起作用,我真的不知道为什么 这是相同的代码,我做了这个测试 从BUSRCDFX.FIP61中选择COUNTF61AñO作为余额 并且仍然给出: 警告:odbc_exec:SQL错误:[IBM][System i Access odbc Driver][DB2 for i5/OS]SQL0104-Token� 无效。有效令牌:,,SQL状态37000,

我在DB2查询中遇到问题:

我正在使用PHP和SQL Server构建db2查询,实际上我有30个查询可以完美工作

昨天我添加了一个新的查询,但它不起作用,我真的不知道为什么

这是相同的代码,我做了这个测试 从BUSRCDFX.FIP61中选择COUNTF61AñO作为余额

并且仍然给出:

警告:odbc_exec:SQL错误:[IBM][System i Access odbc Driver][DB2 for i5/OS]SQL0104-Token� 无效。有效令牌:,,SQL状态37000,在C:\AppServ\www\ficosys\pcoInterfazFicoCom.php的SQLExecDirect中,第80行

PHP中的Te代码:

try
{
//here is where the query is building       
    $conn = OpenConnectionIM();  
        $tsql = "
            SELECT 
                id
            ,   '
                EXEC ' + Data_Function + ' ''CD77'' ' + ', ' + CAST(id AS VARCHAR) +'
                '
            ,   (SELECT COUNT(Concept_name) FROM [paco_PAL_tab]) AS lmt
            ,   Concept_Name
            FROM [paco_PAL_tab] 

            ORDER BY id ASC
        ";
        $getNames = sqlsrv_query($conn, $tsql);                                                     
        if ($getNames == FALSE)  
            die("Error: ".sqlsrv_errors());  
            $productCount = 0;  

        while($row = sqlsrv_fetch_array($getNames, SQLSRV_FETCH_BOTH))  
        {    
            $Query = $row[1];                                                           
            $getNames2 = sqlsrv_query($conn, $Query); 
            if ($getNames2 == FALSE)  
                die("Error: ".sqlsrv_errors());  
            $productCount2 = 0;         

            while($row2 = sqlsrv_fetch_array($getNames2, SQLSRV_FETCH_BOTH)){
                $connDB2 = OpenConnectionDB2() ;
               //clean the text
                $sqlDB2 = "  ";
                $sqlDB2 = $row2[0];
                $sqlDB2 = str_replace('¬¬',"'",$sqlDB2);
                $sqlDB2 = str_replace('�',"'",$sqlDB2);
                $sqlDB2 = str_replace(')  ',")",$sqlDB2);
                echo '<p> Query | </p>'.$sqlDB2 . $Query.'<br />';      

                //exec the query in BD2
                if($sqlDB2 !== 'TBD'){
                    try{    
                        $getNamesDB2 = odbc_exec($connDB2, $sqlDB2);
                    }
                    catch (Exception $e)
                    {
                            echo '<td  data-title="Query" id="qry'.$productCount2.'">'.'IBM tiene problemas : '. $sqlDB2.'</td>';
                    }   
                    ini_set('max_execution_time', 120);
                        while( $rowDB2 = odbc_fetch_array($getNamesDB2) ) { 
                        //  echo '<td  data-title="Query" id="qry'.$productCount2.'">' . $sqlDB2 . '</td>';                                                                         
                            if(es_negativo($rowDB2['BALANCE'])){$colorspan = 'style="color:#fc4b4b !important; text-shadow:1px 1px 1px #ffffff!important;"';}
                            else{$colorspan = 'stye=""';}
                            echo '<td  data-title="BALANCE" id="qry'.$productCount2.'" '.$colorspan.'>' . " <strong><h3>$".number_format($rowDB2['BALANCE'],2,".",",") .'</strong></h3></td>';
                            //echo '<td  data-title="balance">' . $rowDB2['BALANCE']. '</td>';
                            /*
                            $tsqlInterfaz = "
                                EXECUTE spa_CargaRealBPCS
                                        @RubroPaco      = '".$row[3]."'
                                    ,   @Cuenta         = '".str_replace('X',"",$rowDB2['PTLCC'])."' 
                                    ,   @descCue        = '".$rowDB2['PTLCC']."'
                                    ,   @anioPeriodo    = '".$rowDB2['YEAR']."'
                                    ,   @MontoMes       = '".$rowDB2['BALANCE']."'
                                    ,   @idTran         = '".$idTran."'
                            ";
                            echo $tsqlInterfaz.'<br />';
                            $connInterfaz = OpenConnectionIM();
                            sqlsrv_query($connInterfaz, $tsqlInterfaz);
                            if ($getNames2 == FALSE)
                                die("Error: oh no ".sqlsrv_errors());
                            $productCount2 = 0;
                            $productCount2++;
                            */
                        }   
                }else{
                    echo '<td  data-title="Query" id="qry'.$productCount2.'"><h3> TBD | '.$sqlDB2 .' </h3></td>';
                }
            }
        }

我希望有人已经把它修好了,我已经解决了,问题是我刚刚把UTF-8改成了ANSI。 然后这个:

$getNamesDB2 = odbc_exec($connDB2, utf8_decode($sqlDB2));
显然,整个问题出在ñat列名上