Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript PHP在我的输出中放置奇怪的字符_Javascript_Php_Jquery_Ajax_Json - Fatal编程技术网

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

Javascript PHP在我的输出中放置奇怪的字符,javascript,php,jquery,ajax,json,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_e

我正在尝试根据一些输入生成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
} 
假设输入为第1列、第3列 必须生成的所需SQL为:

从诱惑中选择第1列,求和(l1+周*列3)+………求和(l175+周*列3)

我的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);}
这些奇怪的字符后面还包括一些文本,其中包含各种细节,如我的ajax调用参数、密码等。

如果我的输入是column1,column2是cos,那么在column2上就不会有任何求和了

这一直困扰着我很久了。你知道这种行为吗


注意:我使用的是sublime文本,因此没有调试实际PHP代码的选项

我终于明白了这个问题

PHP具有处理长字段的默认设置“4096”字节。如前所述

覆盖设置对我有效:
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.

您知道用户可以修改JS代码,并且通过发送任何修改过的查询,您将为用户提供在服务器中使用SQL注入的可能性吗?您应该生成一个逻辑过滤器,并转义/验证用户输入,请仅在服务器端生成查询。谢谢@Steini,我没有完全了解SQL注入。我指定的JS代码仍然只是为了测试。我将在服务器端构建查询。但是现在我更关心输出中不需要的字符&一些丢失的输出!
; 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.