Javascript PHP在我的输出中放置奇怪的字符
我正在尝试根据一些输入生成SQL。我有一个预定义的SQL(在其中我做了一些替换),它将使用这些输入来使用ODBC连接生成所需的SQL 现在,我已经将预定义的SQL存储在JS文件中 以下是相同的代码: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
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.