PHP在我的输出中放置了奇怪的字符

时间:2014-10-30 10:32:53

标签: javascript php jquery ajax json

我正在尝试根据某些输入生成SQL。我有一个预定义的SQL(在其中我做了一些替换),它将使用这些输入来使用ODBC连接生成所需的SQL

我现在已将预定义的SQL存储在JS文件中。

以下是相同的代码:

function get_Result($query_passed){
    //echo "inPHP";
      $conn=odbc_connect(connectiondetails) or die(odbc_errormsg());
      $resultset = odbc_exec($conn, $query_passed);

    $rowValues = [];

    while(odbc_fetch_array($resultset)){
        $rowValue = odbc_result($resultset,1);
        array_push($rowValues,$rowValue);
    }

    echo $rowValues[1].$rowValues[2]; // for debugging purpose
    odbc_close($conn); // closing the connection
} 

假设输入是column1,column3 必须生成的必需SQL是:

Select column1,sum(l1+week*column3)+ ........sum(l175+week*column3) from tempTable

我的JS代码如下:

$.ajax({
        url: "logic/GetResultSet.php",
        type: "post",
        data:"query_To_Fire="+finQuery+"&action=get_Result",
        success: function(data){
    $("#finaleQuery").append("<b>Generated Query:</b>"+data);}

在调试JS时我得到输出为

select column1,sum(l1+week*column3)+...+sum(l76+week*column3)+LCLT_F3)1)����ȏ���ȏ 11 and so on 

这些奇怪的字符后面还会​​包含一些文字,其中包含各种详细信息,例如我的ajax调用参数,我的密码等。

如果我的输入为column1,column2为cos,则不会对第2列进行任何求和

这一直困扰着我。对这种行为有任何想法。

注意:我正在使用sublime文本,所以没有调试实际PHP代码的选项。

1 个答案:

答案 0 :(得分:0)

我终于得到了这个问题。

PHP的默认设置为&#34; 4096&#34;处理LONG字段的字节数。如上所述here

覆盖设置对我有用:ini_set("odbc.defaultlrl", "10K");

可以修改

php.ini以支持项目特定设置:

odbc.defaultlrl=4096 //default in php.ini

实用说明

; Handling of LONG fields.  Returns number of bytes to variables.  0 means
; passthru.
odbc.defaultlrl=0 //to get as many characters as the long text contains.