前台拼凑sql语句传到后台

有时我们会把一些sql的在前台动态生成,这是我们首先要做的是验证他是不是合法,如果sql 语句结尾为and 或or 我们也要进行删除处理,不然会报错。

1.前台js 判断是否满足左右括号对称

 function checkBracket(algorithms) {
            var bracket = [];
            var algorithms = algorithms || '';
            for (var i = 0; i < algorithms.length; i++) {
                if (algorithms.charAt(i) == "(") {
                    bracket.push('(');
                }
                if (algorithms.charAt(i) == ")") {
                    if (bracket.length) {
                        bracket.pop();
                    } else {
                        alert('条件括号不配对,缺少左括号!')
                        return false;
                    }
                }
            }
            if (bracket.length) {
                alert('条件括号不配对,缺少右括号!')
                return false;
            }
            return true;
        }

2.判断是否满足sql语句语法

 public string GetBool(string exp)
    {
        string flag = "true";
        try
        {
            if (exp.EndsWith("and ") || exp.EndsWith("or "))
            {
                exp = exp.Contains("and ") ? exp.Substring(0, exp.Length - 4) : exp.Substring(0, exp.Length - 3);
            }
            exp = exp.Replace("and", "&&").Replace("or", "||");
            var type = Type.GetTypeFromProgID("MSScriptControl.ScriptControl");
            var obj = Activator.CreateInstance(type);
            type.InvokeMember("Language", System.Reflection.BindingFlags.SetProperty, null, obj, new object[] { "javascript" });
            var result = type.InvokeMember("Eval", System.Reflection.BindingFlags.InvokeMethod, null, obj, new object[] { exp });
        }
        catch (Exception e)
        {
            flag = "false";
        }
        return flag;
    }
时间: 2024-10-27 07:47:37

前台拼凑sql语句传到后台的相关文章

如何从页面SQL语句进行相关后台查询

前几天刚刚做了一个页面书写sql语句,到后台查询相关结果的案例,给大家分享一下.有不足之处请大家多指教!!! 一.页面:因为查询的表不固定,所以表格需要自助生成(这是利用了"jqGrid") 若是不利用"jqGrid"也可以参考方法2. 方法1. <div> <nobr> <div> <form method="get" action="/management/transactionFlow/i

使用Excel拼凑SQL语句

快速将一列多行数据合并到一个单元格 EXCEL如何快速将一列多行数据合并到一个单元格,并加分隔符?这是批量处理由一线业务员统计的数据时的常用方法,尤其是当一列数据是where条件中的id时.下面给大家演示一种简单.快捷的方法. 假设数据都已经存储到A列.打开Excel,然后按照如下三步骤操作 在B1单元格输入=A1:A6: 按F9键,再删除前面的等号和大括号{ }: 需要的情况下,将单元格中的"替换为空. 详见附图. 图1 初始化A列,并在B1单元格输入公式 图2 将公式转换为预期的文本 至此,

《Entity Framework 6 Recipes》中文翻译系列 (12) -----第三章 查询之使用SQL语句 (转)

3-2使用原生SQL语句更新 问题 你想在实体框架中使用原生的SQL语句,来更新底层数据存储. 解决方案 假设你有一张如图3-2所示的Payment数据库表,使用实体框架设计器工具创建了一个如图3-2所示的模型. 图3-2 Payment表,包含一个供应商的付款信息 图3-3 包含一个Payment实体的模型 为了在底层的Payment表中执行一句和多句SQL语句,可以使用在DbContext类中的属性Database中的ExecuteSQlCommand()方法. 虽然我们能在模型中查询Pay

验证码确保php无输出、sql语句的封装性、文件上传的工具类【这三个重点工具类实现】

1.php代码在引入中不会进行结束或者确保结束之后没有空格,来保证php在被包含中没有被输出[防止header和session_start()对输出的控制]实质上,需要注意的就是,要不就进行输出缓存控制以及php开始标签前没有空格 验证码这个功能需要header和session两个功能[尤其需要注意输出的问题] [总结:防止php代码中带着一些输出的问题](1)在php标签中开始<?php 前顶格(2)php结束符要不不写,写了就不要在结束之后还有换行[防止该文件被包含之后提前出线输出](3)或

DeDeCMS后台批量修改替换sql语句大全

有时候后台文章内容.标题或者锚文本出错,需要修改批量修改,那么就需要用dedecms的sql语句进行批量修改了. 利用dedecms后台SQL命令行工具批量修改内容,路径和超链接等信息.语句 DEDECMS SQL命令批量替换1.更改文章中的内容update dede_addonarticle set body=replace(body,'原来的字符','替换后的字符')例子解释:update dede_addonarticle set body=replace(body,'软件下载','插件下

字符串拼凑批量Insert SQL语句出现神BUG

项目中,为了实现删除原有元素再循环插入数据打算使用字符串拼凑的方式拼凑出一段批量写入数据SQL,出现以下神奇的BUG 拼凑中某些语句被吞了 开启debug查看: 第一次拼凑,into后面的语句全部被吞 第二次拼凑,语句完全错乱 检查代码均是正常, 决定更换一种方式,把实现分开写,先删除完成后再逐条写入(数据已验证合法)

关于在java中向带有IN的SQL语句中传参数的问题

今天遇到俩个问题: 1.在使用表格模型的时候,从数据库查询出来的数据赋值到Jtable的时候永远只显示最后一天记录,前面的都被覆盖了.一直在究其原因,未果,遂择其道而行之(第二个问题). 2.为了解决上面的问题,我将SQL语句的条件换成IN,目的想把所有参数一并传过去,查询所有记录后在一并显示到Jtable上,实验证明我的做法是对的.但是,一直没有搞懂IN(?)这个问号应该如何传值. SQL : String sql = " select sxh,grbm,xm,yybm,fyze,qzfbf,

将前台input中的数组异步传到后台并存入数据库

将前台input中的数组异步传到后台并存入数据库 先看图: 利用ajax异步交互数据,并不是以json数组的形式将数据传到后台,而是利用字符数组的形式将其传到后台.动态新增每一行数据,将每一列对应的数据存入数组,并传到后台中进行入库.(当然可以直接以json数组的形式将每一行的数据传到后台,这里就不详细讲了) 前台js代码: ///保存多行数据,运用ajax异步交互请求 function btnSave() { /*传值方式一:将添加的每一字段的值存在数组中,再将数组转换成字符串串传到后台*/

前台将勾选的多个属性放到一个value里面,是一个字符串,传到后台

jq function changeStreet(a){ var valk=$(a).html(); $(a).parents(".select_box").children(".select_choose").children(".hadSelect").text(valk); $(a).parents("ul.select_ul").hide(); $(a).parents(".select_box")