简单地运用MySQL的增删改查

2022-10-11 20:30:27 135 0
魁首哥

增、删、改、查,贴码:

1、增加数据

  • insert into table_name value (‘1′,’2’,3…)
  • 也可以通过set指定添加的字段:insert into table_name set (‘1’,3…) value(1,2,3…)

那么第二条跟第一条有什么区别呢?

举个栗子:user表中有三个字段;

用第一条命令添加数据 value 值后面必须有三个值;

而用第二条命令 ,可以通过 set 设置指明 我就需要 添加 第一列和第三列的,第二列不需要填,那么value值就填俩个值就OK;

注:添加数据时可以同 ` 这个符号(ESC下面一个的按键)表明这是个字段,是MySQL的转义符,如: insert into user value (`juzi`,`20`) ;用于包含数据库名、表名、字段名,避免与其他关键字冲突;

小技巧: 这句话等效于   这句话就是使用 ` 这个反勾号达到的效果;

简单地运用MySQL的增删改查

2、删除数据

  • delete from table_name where id=1;  #删数据
  • drop database db_name;       #删数据库
  • drop table table_name;        #删表

3、修改数据

  •    update table_name set column_name=’%d’ where id =%d    %d 作为可以替换的数据,column_name 是 字段名

4、查找数据

  • select * from table_name   #查找数据
  • select column_name from table_name where column_name=%d   %d 作为可以替换的数据

写个 查找数据 时的注入漏洞吧;

举栗:

若原查询语句为: select username from user where id=’$id’ 或为 select * from user where username=’$username’&passwd=’$passwd’    其中 $id、$username、$passwdd 是 通过浏览器 接收过来的变量,即可控变量;(假设没做过滤)

那么构造语句为:

$id = 0′ union select 1,database(),’3  

$username = 0′ union select 1,database(),3#

$passwd = 不写也行

select username from user where id=’0′ union select 1,database(),’3’  以及  select * from user where username=’0′ union select 1,database(),3# ‘&passwd=”   井号后面不解析,注释了

那么再举个栗子:

通过 insert into 增加数据 构造注入;

insert into table_name value(‘1′,’2’,’3’…)    1,2,3为前端浏览器输入的内容,即可控制;

构造语句:insert into table_name value(‘1′,’0’+substr((select database()) from 1 for 1)+’0′,’3’)  必要时,可以在 substr 外面加个 ASCII()进行转码;为什么这么写,上篇unfinish有提到;

收藏
分享
海报
0 条评论
135
上一篇:PHP的魔术方法使用 下一篇:企业级Web服务器Zend Server发布v2019|支持PHP 7.3

本站已关闭游客评论,请登录或者注册后再评论吧~

忘记密码?

图形验证码