sql防注入代码(1/2)

sql防注入代码

以下代码生成的sql语句是曾对sql server 2005以上版本的,希望这些代码对大家有用

public class pagerquery { private int _pageindex; private int _pagesize = 20; private string _pk; private string _fromclause; private string _groupclause; private string _selectclause; private string _sortclause; private stringbuilder _whereclause; public datetime datefilter = datetime.minvalue; protected querybase() { _whereclause = new stringbuilder(); } /**//// /// 主键 /// public string pk { get { return _pk; } set { _pk = value; } } public string selectclause { get { return _selectclause; } set { _selectclause = value; } } public string fromclause { get { return _fromclause; } set { _fromclause = value; } } public stringbuilder whereclause { get { return _whereclause; } set { _whereclause = value; } } public string groupclause { get { return _groupclause; } set { _groupclause = value; } } public string sortclause { get { return _sortclause; } set { _sortclause = value; } } /**//// /// 当前页数 /// public int pageindex { get { return _pageindex; } set { _pageindex = value; } } /**//// /// 分页大小 /// public int pagesize { get { return _pagesize; } set { _pagesize = value; } } /**//// /// 生成缓存key /// /// public override string getcachekey() { const string keyformat = “pager-sc:{0}-fc:{1}-wc:{2}-gc:{3}-sc:{4}”; return string.format(keyformat, selectclause, fromclause, whereclause, groupclause, sortclause); } /**//// /// 生成查询记录总数的sql语句 /// /// public string generatecountsql() { stringbuilder sb = new stringbuilder(); sb.appendformat(” from {0}”, fromclause); if (whereclause.length > 0) sb.appendformat(” where 1=1 {0}”, whereclause); if (!string.isnullorempty(groupclause)) sb.appendformat(” group by {0}”, groupclause); return string.format(“select count(0) {0}”, sb); } /**//// /// 生成分页查询语句,包含记录总数 /// /// public string generatesqlincludetotalrecords() { stringbuilder sb = new stringbuilder(); if (string.isnullorempty(selectclause)) selectclause = “*”; if (string.isnullorempty(sortclause)) sortclause = pk; int start_row_num = (pageindex – 1)*pagesize + 1; sb.appendformat(” from {0}”, fromclause); if (whereclause.length > 0) sb.appendformat(” where 1=1 {0}”, whereclause); if (!string.isnullorempty(groupclause)) sb.appendformat(” group by {0}”, groupclause); string countsql = string.format(“select count(0) {0};”, sb); string temql = string.format( “with t as (select row_number() over(order by {0}) as row_number,{1}{2}) select * from t where row_number between {3} and {4};”, sortclause, selectclause, sb, start_row_num, (start_row_num + pagesize – 1)); return tempsql + countsql; } /**//// /// 生成分页查询语句 /// /// public override string generatesql() { stringbuilder sb = new stringbuilder(); if (string.isnullorempty(selectclause)) selectclause = “*”; if (string.isnullorempty(sortclause)) sortclause = pk; int start_row_num = (pageindex – 1)*pagesize + 1; sb.appendformat(” from {0}”, fromclause); if (whereclause.length > 0) sb.appendformat(” where 1=1 {0}”, whereclause); if (!string.isnullorempty(groupclause)) sb.appendformat(” group by {0}”, groupclause); return string.format( “with t as (select row_number() over(order by {0}) as row_number,{1}{2}) select * from t where row_number between {3} and {4}”, sortclause, selectclause, sb, start_row_num, (start_row_num + pagesize – 1)); } }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/1836864.html

(0)
上一篇 2025年2月21日 22:16:55
下一篇 2025年2月21日 22:17:22

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 如何利用PHP7的类型声明编写可读性更强的代码?

    如何利用PHP7的类型声明编写可读性更强的代码? 随着PHP7的发布,类型声明成为了PHP的一个重要特性。通过类型声明,我们可以在函数和方法中明确指定输入参数和返回值的数据类型。这可以有效地提高代码的可读性和健壮性。在本文中,我们将介绍如何…

    2025年2月23日
    100
  • 开源SQLJet 1.0.0发布

    SQLJet是流行的SQLite数据库管理系统的一个独立纯Java实现,也是一个提供API的软件库,这个API使得Java应用程序可以读取和修改SQ SQLJet是流行的SQLite数据库管理系统的一个独立纯Java实现,也是一个提供API…

    数据库 2025年2月23日
    100
  • 解析PHP安全封装与库设计技术

    随着互联网的快速发展,web应用程序的安全性成为了一个越来越重要的问题。而php作为一种常用的服务器端编程语言,其安全性更是需要重视。本文将探讨php中的安全代码封装与库设计技术,以帮助开发者开发更加安全可靠的web应用程序。 了解安全风险…

    编程技术 2025年2月23日
    100
  • 一次简单的SQL优化给我的经验–索引不可用的情况

    有一天我遇到了一个同事的求助,他让我帮忙优化一个SQL,这个SQL执行时间很长。于是我查询了执行计划,发现这个SQL竟然要进行一次 有一天我遇到了一个同事的求助,他让我帮忙优化一个SQL,这个SQL执行时间很长。于是我查询了执行计划,发现这…

    数据库 2025年2月23日
    300
  • Greenplum获取一个SQL结果的字段名

    在Greenplum中,对于任意一个SQL,我们想获取这个SQL执行后的字段名是比较难的。比方说在写一个通用工具的时候,使用copy命令将一 在Greenplum中,对于任意一个SQL,我们想获取这个SQL执行后的字段名是比较难的。 比方说…

    数据库 2025年2月23日
    100
  • 如何将多个SQL查询统计结果一次显示出来

    我们经常会碰到各种分类统计,有时需要将这些统计结果一次显示出来,并计算分类统计占总量的比例,例如:一段时间内每日设备销售 我们经常会碰到各种分类统计,有时需要将这些统计结果一次显示出来,并计算分类统计占总量的比例,例如:一段时间内每日设备销…

    数据库 2025年2月22日
    100
  • SQL锁和并发

    并发是所有数据库的主要问题。它描述了两个或多个用户尝试同时处理一个对象的概念。交互操作的本质对每个用户来说都是不同的(更 并发是所有数据库的主要问题。它描述了两个或多个用户尝试同时处理一个对象的概念。交互操作的本质对每个用户来说都是不同的(…

    数据库 2025年2月22日
    100
  • SQL两个表之间的更新:用一个表的字段更新另一个表的字段

    SQLmdash;mdash;两个表之间的更新:用一个表的字段更新另一个表的字段 –1. 这种写法相当于一个 Left join, 以外面的where为更新条数。    —   注意! 如果内面的表的(where之后…

    数据库 2025年2月22日
    100
  • SQL语句的基本操作

    –创建数据库create database Etp; –连接数据库connect to Etp; –断开连接disconnect Etp; –查看当前数据库下有哪些表list ta &#821…

    数据库 2025年2月22日
    100
  • SQL语句执行顺序

    一、sql语句的执行步骤:1)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义。 2) 语义分析,检查语句中涉及的 一、sql语句的执行步骤:1)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义。 2) 语义分析…

    数据库 2025年2月22日
    100

发表回复

登录后才能评论