首页
关于
Search
1
给你10个市场数据调研报告的免费下载网站!以后竞品数据就从这里找!
182 阅读
2
php接口优化 使用curl_multi_init批量请求
144 阅读
3
《从菜鸟到大师之路 ElasticSearch 篇》
107 阅读
4
2024年备考系统架构设计师
104 阅读
5
PHP 文件I/O
92 阅读
php
thinkphp
laravel
工具
开源
mysql
数据结构
总结
思维逻辑
令人感动的创富故事
读书笔记
前端
vue
js
css
书籍
开源之旅
架构
消息队列
docker
教程
代码片段
redis
服务器
nginx
linux
科普
java
c
ElasticSearch
测试
php进阶
php基础
登录
Search
标签搜索
php函数
php语法
性能优化
安全
错误和异常处理
问题
vue
Composer
Session
缓存
框架
Swoole
api
并发
异步
正则表达式
php-fpm
mysql 索引
开发规范
协程
dafenqi
累计撰写
786
篇文章
累计收到
28
条评论
首页
栏目
php
thinkphp
laravel
工具
开源
mysql
数据结构
总结
思维逻辑
令人感动的创富故事
读书笔记
前端
vue
js
css
书籍
开源之旅
架构
消息队列
docker
教程
代码片段
副业
redis
服务器
nginx
linux
科普
java
c
ElasticSearch
测试
php进阶
php基础
页面
关于
搜索到
786
篇与
的结果
2024-03-12
mysql复习
迭代学习法原文件下载布尔教育_Mysql基础_练习准备.sql复习秘籍.htmlmysql加强.pdf一:复习前的准备1:确认你已安装wamp2:确认你已安装ecshop,并且ecshop的数据库名为shop二 基础知识:1.数据库的连接mysql -u -p -h-u 用户名-p 密码-h host主机2:库级知识2.1 显示数据库: show databases;2.2 选择数据库: use dbname;2.3 创建数据库: create database dbname charset utf8;2.3 删除数据库: drop database dbname;3: 表级操作:3.1 显示库下面的表show tables;3.2 查看表的结构: desc tableName;3.3 查看表的创建过程: show create table tableName;3.4 创建表: create table tbName (列名称1 列类型 [列参数] [not null default ],....列2.......列名称N 列类型 [列参数] [not null default ])engine myisam/innodb charset utf8/gbk3.4的例子:create table user (id int auto_increment, name varchar(20) not null default '', age tinyint unsigned not null default 0,index id (id) )engine=innodb charset=utf8;注:innodb是表引擎,也可以是myisam或其他,但最常用的是myisam和innodb,charset 常用的有utf8,gbk;3.5 修改表3.5.1 修改表之增加列:alter table tbName add 列名称1 列类型 [列参数] [not null default ] #(add之后的旧列名之后的语法和创建表时的列声明一样)3.5.2 修改表之修改列alter table tbNamechange 旧列名 新列名 列类型 [列参数] [not null default ](注:旧列名之后的语法和创建表时的列声明一样)3.5.3 修改表之减少列:alter table tbName drop 列名称;3.5.4 修改表之增加主键alter table tbName add primary key(主键所在列名);例:alter table goods add primary key(id)该例是把主键建立在id列上3.5.5 修改表之删除主键alter table tbName drop primary key;3.5.6 修改表之增加索引alter table tbName add [unique|fulltext] index 索引名(列名);3.5.7 修改表之删除索引alter table tbName drop index 索引名;3.5.8 清空表的数据truncate tableName;4:列类型讲解列类型: 整型:tinyint (0~255/-128~127) smallint (0~65535/-32768~32767) mediumint int bigint (参考手册11.2) 参数解释: unsigned 无符号(不能为负) zerofill 0填充 M 填充后的宽度 举例:tinyint unsigned; tinyint(6) zerofill; 数值型 浮点型:float double 格式:float(M,D) unsigned\zerofill; 字符型 char(m) 定长 varchar(m)变长 text 列 实存字符i 实占空间 利用率char(M) 0<=i<=M M i/m<=100%varchar(M) 0<=i<=M i+1,2 i/i+1/2<100% year YYYY 范围:1901~2155. 可输入值2位和4位(如98,2012)日期时间类型 date YYYY-MM-DD 如:2010-03-14 time HH:MM:SS 如:19:26:32 datetime YYYY-MM-DD HH:MM:SS 如:2010-03-14 19:26:32 timestamp YYYY-MM-DD HH:MM:SS 特性:不用赋值,该列会为自己赋当前的具体时间 5:增删改查基本操作5.1 插入数据insert into 表名(col1,col2,……) values(val1,val2……); -- 插入指定列 insert into 表名 values (,,,,); -- 插入所有列 insert into 表名 values -- 一次插入多行 (val1,val2……), (val1,val2……), (val1,val2……); 5.3修改数据update tablename set col1=newval1, col2=newval2, ... ... colN=newvalN where 条件; 5.4,删除数据 delete from tablenaeme where 条件;5.5, select 查询(1) 条件查询 where a. 条件表达式的意义,表达式为真,则该行取出 b. 比较运算符 = ,!=,< > <= >= c. like , not like ('%'匹配任意多个字符,'_'匹配任意单个字符) in , not in , between and d. is null , is not null (2) 分组 group by 一般要配合5个聚合函数使用:max,min,sum,avg,count(3) 筛选 having (4) 排序 order by (5) 限制 limit6: 连接查询6.1, 左连接.. left join .. on table A left join table B on tableA.col1 = tableB.col2 ; 例句: select 列名 from table A left join table B on tableA.col1 = tableB.col2右链接: right join内连接: inner join左右连接都是以在左边的表的数据为准,沿着左表查右表.内连接是以两张表都有的共同部分数据为准,也就是左右连接的数据之交集.7 子查询where 型子查询:内层sql的返回值在where后作为条件表达式的一部分 例句: select * from tableA where colA = (select colB from tableB where ...);from 型子查询:内层sql查询结果,作为一张表,供外层的sql语句再次查询 例句:select from (select from ...) as tableName where ....8: 字符集客服端sql编码 character_set_client 服务器转化后的sql编码 character_set_connection 服务器返回给客户端的结果集编码 character_set_results 快速把以上3个变量设为相同值: set names 字符集存储引擎 engine=1\2 1 Myisam 速度快 不支持事务 回滚 2 Innodb 速度慢 支持事务,回滚①开启事务 start transaction ②运行sql; ③提交,同时生效\回滚 commit\rollback触发器 trigger 监视地点:表 监视行为:增 删 改 触发时间:after\before 触发事件:增 删 改创建触发器语法create trigger tgName after/before insert/delete/update on tableName for each row sql; -- 触发语句 删除触发器:drop trigger tgName;索引提高查询速度,但是降低了增删改的速度,所以使用索引时,要综合考虑. 索引不是越多越好,一般我们在常出现于条件表达式中的列加索引. 值越分散的列,索引的效果越好索引类型 primary key主键索引 index 普通索引 unique index 唯一性索引 fulltext index 全文索引综合练习:连接上数据库服务器创建一个gbk编码的数据库建立商品表和栏目表,字段如下:商品表:goodsgoods_id --主键,goods_name -- 商品名称cat_id -- 栏目idbrand_id -- 品牌idgoods_sn -- 货号goods_number -- 库存量shop_price -- 价格goods_desc --商品详细描述栏目表:categorycat_id --主键 cat_name -- 栏目名称parent_id -- 栏目的父id建表完成后,作以下操作:删除goods表的goods_desc 字段,及货号字段并增加字段:click_count -- 点击量在goods_name列上加唯一性索引在shop_price列上加普通索引在clcik_count列上加普通索引删除click_count列上的索引对goods表插入以下数据:goods_idgoods_namecat_idbrand_idgoods_sngoods_numbershop_priceclick_count1KD87648ECS000000101388.0074诺基亚N85原装充电器81ECS0000041758.0003诺基亚原装5800耳机81ECS0000022468.0035索爱原装M2卡读卡器117ECS000005820.0036胜创KINGMAX内存卡110ECS0000061542.0007诺基亚N85原装立体声耳机HS-8281ECS00000720100.0008飞利浦9@9v34ECS00000817399.0099诺基亚E6631ECS000009132298.002010索爱C702c37ECS00001071328.001111索爱C702c37ECS00001111300.00012摩托罗拉A81032ECS0000128983.001413诺基亚5320 XpressMusic31ECS00001381311.001314诺基亚5800XM41ECS00001442625.00615摩托罗拉A81032ECS0000153788.00816恒基伟业G101211ECS0000160823.33317夏新N735ECS00001712300.00218夏新T545ECS00001812878.00019三星SGH-F25836ECS0000190858.00720三星BC0136ECS00002013280.001421金立 A30310ECS000021402000.00422多普达Touch HD33ECS00002205999.001523诺基亚N9651ECS00002383700.001724P80639ECS0000241482000.003625小灵通/固话50元充值卡130ECS000025248.00026小灵通/固话20元充值卡130ECS000026219.00027联通100元充值卡150ECS000027295.00028联通50元充值卡150ECS000028045.00029移动100元充值卡140ECS000029090.00030移动20元充值卡140ECS000030918.00131摩托罗拉E832ECS00003111337.00532诺基亚N8531ECS00003213010.009三 查询知识注:以下查询基于ecshop网站的商品表(ecs_goods)在练习时可以只取部分列,方便查看.1: 基础查询 where的练习:查出满足以下条件的商品1.1:主键为32的商品select goods_id,goods_name,shop_price from ecs_goods where goods_id=32;1.2:不属第3栏目的所有商品select goods_id,cat_id,goods_name,shop_price from ecs_goods where cat_id!=3; 1.3:本店价格高于3000元的商品select goods_id,cat_id,goods_name,shop_price from ecs_goods where shop_price >3000; 1.4:本店价格低于或等于100元的商品select goods_id,cat_id,goods_name,shop_price from ecs_goods where shop_price <=100;1.5:取出第4栏目或第11栏目的商品(不许用or)select goods_id,cat_id,goods_name,shop_price from ecs_goods where cat_id in (4,11); 1.6:取出100<=价格<=500的商品(不许用and)select goods_id,cat_id,goods_name,shop_price from ecs_goods where shop_price between 100 and 500; 1.7:取出不属于第3栏目且不属于第11栏目的商品(and,或not in分别实现)select goods_id,cat_id,goods_name,shop_price from ecs_goods where cat_id!=3 and cat_id!=11;select goods_id,cat_id,goods_name,shop_price from ecs_goods where cat_id not in (3,11);1.8:取出价格大于100且小于300,或者大于4000且小于5000的商品()select goods_id,cat_id,goods_name,shop_price from ecs_goods where shop_price>100 and shop_price 4000 and shop_price <5000;1.9:取出第3个栏目下面价格<1000或>3000,并且点击量>5的系列商品select goods_id,cat_id,goods_name,shop_price,click_count from ecs_goods wherecat_id=3 and (shop_price 3000) and click_count>5;1.10:取出第1个栏目下面的商品(注意:1栏目下面没商品,但其子栏目下有)select goods_id,cat_id,goods_name,shop_price,click_count from ecs_goods where cat_id in (2,3,4,5); 1.11:取出名字以"诺基亚"开头的商品select goods_id,cat_id,goods_name,shop_price from ecs_goods where goods_name like '诺基亚%';1.12:取出名字为"诺基亚Nxx"的手机select goods_id,cat_id,goods_name,shop_price from ecs_goods where goods_name like '诺基亚N__';1.13:取出名字不以"诺基亚"开头的商品select goods_id,cat_id,goods_name,shop_price from ecs_goos where goods_name not like '诺基亚%'; 1.14:取出第3个栏目下面价格在1000到3000之间,并且点击量>5 "诺基亚"开头的系列商品select goods_id,cat_id,goods_name,shop_price from ecs_goods where cat_id=3 and shop_price>1000 and shop_price 5 and goods_name like '诺基亚%';select goods_id,cat_id,goods_name,shop_price from ecs_goods where shop_price between 1000 and 3000 and cat_id=3 and click_count>5 and goods_name like '诺基亚%';1.15 一道面试题有如下表和数据,查出num>=20 and num<=39的数字,并且,把num值处于[20,29]之间,显示为20num值处于[30,39]之间的,显示30mian表num312152523293437324548521.16 练习题:把good表中商品名为'诺基亚xxxx'的商品,改为'HTCxxxx',提示:大胆的把列看成变量,参与运算,甚至调用函数来处理 .substring(),concat()2 分组查询group:2.1:查出最贵的商品的价格select max(shop_price) from ecs_goods;2.2:查出最大(最新)的商品编号select max(goods_id) from ecs_goods;2.3:查出最便宜的商品的价格select min(shop_price) from ecs_goods;2.4:查出最旧(最小)的商品编号select min(goods_id) from ecs_goods;2.5:查询该店所有商品的库存总量select sum(goods_number) from ecs_goods;2.6:查询所有商品的平均价 select avg(shop_price) from ecs_goods;2.7:查询该店一共有多少种商品 select count(*) from ecs_goods;2.8:查询每个栏目下面最贵商品价格最低商品价格商品平均价格商品库存量商品种类提示:(5个聚合函数,sum,avg,max,min,count与group综合运用)select cat_id,max(shop_price) from ecs_goods group by cat_id;3 having与group综合运用查询:3.1:查询该店的商品比市场价所节省的价格select goods_id,goods_name,market_price-shop_price as j from ecs_goods ; 3.2:查询每个商品所积压的货款(提示:库存*单价)select goods_id,goods_name,goods_number*shop_price from ecs_goods3.3:查询该店积压的总货款select sum(goods_number*shop_price) from ecs_goods;3.4:查询该店每个栏目下面积压的货款.select cat_id,sum(goods_number*shop_price) as k from ecs_goods group by cat_id;3.5:查询比市场价省钱200元以上的商品及该商品所省的钱(where和having分别实现)select goods_id,goods_name,market_price-shop_price as k from ecs_goodswhere market_price-shop_price >200;select goods_id,goods_name,market_price-shop_price as k from ecs_goodshaving k >200;3.6:查询积压货款超过2W元的栏目,以及该栏目积压的货款select cat_id,sum(goods_number*shop_price) as k from ecs_goods group by cat_idhaving k>200003.7:where-having-group综合练习题有如下表及数据namesubjectscore张三数学90张三语文50张三地理40李四语文55李四政治45王五政治30要求:查询出2门及2门以上不及格者的平均成绩一种错误做法mysql> select name,count(score<60) as k,avg(score) from stu group by name having k>=2;namekavg(score)张三360.0000李四250.00002 rows in set (0.00 sec)mysql> select name,count(score<60) as k,avg(score) from stu group by name;namekavg(score)张三360.0000李四250.0000王五130.00003 rows in set (0.00 sec)mysql> select name,count(score<60) as k,avg(score) from stu group by name having k>=2;namekavg(score)张三360.0000李四250.00002 rows in set (0.00 sec)加上赵六后错误暴露mysql> insert into stu-> values -> ('赵六','A',100), -> ('赵六','B',99), -> ('赵六','C',98);Query OK, 3 rows affected (0.05 sec)Records: 3 Duplicates: 0 Warnings: 0错误显现mysql> select name,count(score<60) as k,avg(score) from stu group by name having k>=2;namekavg(score)张三360.0000李四250.0000赵六399.00003 rows in set (0.00 sec)正确思路,先查看每个人的平均成绩mysql> select name,avg(score) from stu group by name;nameavg(score)张三60.0000李四50.0000王五30.0000赵六99.00004 rows in set (0.00 sec)mysql> # 看每个人挂科情况mysql> select name,score < 60 from stu;namescore < 60张三0张三1张三1李四1李四1王五1赵六0赵六0赵六09 rows in set (0.00 sec)mysql> #计算每个人的挂科科目mysql> select name,sum(score < 60) from stu group by name;namesum(score < 60)张三2李四2王五1赵六04 rows in set (0.00 sec)同时计算每人的平均分mysql> select name,sum(score < 60),avg(score) as pj from stu group by name;namesum(score < 60)pj张三260.0000李四250.0000王五130.0000赵六099.00004 rows in set (0.00 sec)利用having筛选挂科2门以上的.mysql> select name,sum(score < 60) as gk ,avg(score) as pj from stu group by name having gk >=2;namegkpj张三260.0000李四250.00002 rows in set (0.00 sec)4: order by 与 limit查询4.1:按价格由高到低排序select goods_id,goods_name,shop_price from ecs_goods order by shop_price desc;4.2:按发布时间由早到晚排序select goods_id,goods_name,add_time from ecs_goods order by add_time;4.3:接栏目由低到高排序,栏目内部按价格由高到低排序select goods_id,cat_id,goods_name,shop_price from ecs_goods order by cat_id ,shop_price desc; 4.4:取出价格最高的前三名商品select goods_id,goods_name,shop_price from ecs_goods order by shop_price desc limit 3;4.5:取出点击量前三名到前5名的商品select goods_id,goods_name,click_count from ecs_goods order by click_count desc limit 2,3;5 连接查询5.1:取出所有商品的商品名,栏目名,价格select goods_name,cat_name,shop_price from ecs_goods left join ecs_categoryon ecs_goods.cat_id=ecs_category.cat_id;5.2:取出第4个栏目下的商品的商品名,栏目名,价格select goods_name,cat_name,shop_price from ecs_goods left join ecs_categoryon ecs_goods.cat_id=ecs_category.cat_idwhere ecs_goods.cat_id = 4;5.3:取出第4个栏目下的商品的商品名,栏目名,与品牌名select goods_name,cat_name,brand_name from ecs_goods left join ecs_categoryon ecs_goods.cat_id=ecs_category.cat_idleft join ecs_brand on ecs_goods.brand_id=ecs_brand.brand_idwhere ecs_goods.cat_id = 4;5.4: 用友面试题根据给出的表结构按要求写出SQL语句。Match 赛程表字段名称 字段类型 描述matchID int 主键hostTeamID int 主队的IDguestTeamID int 客队的IDmatchResult varchar(20) 比赛结果,如(2:0)matchTime date 比赛开始时间Team 参赛队伍表字段名称 字段类型 描述teamID int 主键teamName varchar(20) 队伍名称Match的hostTeamID与guestTeamID都与Team中的teamID关联查出 2006-6-1 到2006-7-1之间举行的所有比赛,并且用以下形式列出:拜仁 2:0 不来梅 2006-6-21mysql> select * from m;midhidgidmresmatime1122:02006-05-212231:22006-06-213312:52006-06-254213:22006-07-214 rows in set (0.00 sec)mysql> select * from t;tidtname1国安2申花3公益联队3 rows in set (0.00 sec)mysql> select hid,t1.tname as hname ,mres,gid,t2.tname as gname,matime-> from -> m left join t as t1 -> on m.hid = t1.tid -> left join t as t2 -> on m.gid = t2.tid;hidhnamemresgidgnamematime1国安2:02申花2006-05-212申花1:23公益联队2006-06-213公益联队2:51国安2006-06-252申花3:21国安2006-07-214 rows in set (0.00 sec)6 union查询6.1:把ecs_comment,ecs_feedback两个表中的数据,各取出4列,并把结果集union成一个结果集.6.2:3期学员碰到的一道面试题A表:idnuma5b10c15d10B表:idnumb5c15d20e99要求查询出以下效果:idnuma5b15c30d30e99create table a (id char(1),num int)engine myisam charset utf8;insert into a values ('a',5),('b',10),('c',15),('d',10);create table b (id char(1),num int)engine myisam charset utf8;insert into b values ('b',5),('c',15),('d',20),('e',99);mysql> # 合并 ,注意all的作用mysql> select * from ta-> union all -> select * from tb;idnuma5b10c15d10b5c15d20e99参考答案:mysql> # sum,group求和mysql> select id,sum(num) from (select from ta union all select from tb) as tmp group by id;idsum(num)a5b15c30d30e995 rows in set (0.00 sec)7: 子查询:7.1:查询出最新一行商品(以商品编号最大为最新,用子查询实现)select goods_id,goods_name from ecs_goods where goods_id =(select max(goods_id) from ecs_goods); 7.2:查询出编号为19的商品的栏目名称(用左连接查询和子查询分别)7.3:用where型子查询把ecs_goods表中的每个栏目下面最新的商品取出来select goods_id,goods_name,cat_id from ecs_goods where goods_id in (select max(goods_id) from ecs_goods group by cat_id);7.4:用from型子查询把ecs_goods表中的每个栏目下面最新的商品取出来select * from (select goods_id,cat_id,goods_name from ecs_goods order by goods_id desc) as t group by cat_id;7.5 用exists型子查询,查出所有有商品的栏目select * from categorywhere exists (select * from goods where goods.cat_id=category.cat_id);创建触发器:CREATE trigger tg2after insert on ordfor each rowupdate goods set goods_number=goods_number-new.num where id=new.gidCREATE trigger tg3after delete on ordfor each rowupdate goods set goods_number=good_number+old.num where id=old.gidCREATE trigger tg4after update on ordfor each rowupdate goods set goods_number=goods_number+old.num-new.num where id=old.gid2012-03-25更新,添加了面试案例
2024年03月12日
19 阅读
0 评论
0 点赞
2024-02-21
会话技术之cookie和session
COOKIE什么是COOKIE?Cookie是由网站存储在用户计算机上的小型文本文件,用于在用户访问网站时跟踪和识别用户。Cookie可以在用户的计算机上存储有关用户行为和偏好的信息,以便在用户下次访问相同网站时提供个性化的体验。以下是一些关于Cookie的重要信息:用途:跟踪用户会话:网站可以使用Cookie来跟踪用户在网站上的活动和会话,以便在用户导航网站时保持连续性。记住用户偏好:Cookie可以存储用户个性化设置和偏好,如语言选择、主题偏好等。实现购物车功能:在电子商务网站上,Cookie常用于存储购物车内容,以便用户可以在不同页面之间保持购物车内容。工作原理:当用户访问一个网站时,网站会将适当的信息存储在用户计算机上的Cookie文件中。每当用户再次访问相同的网站时,浏览器会将存储在Cookie中的信息发送回给网站,以便网站可以识别用户并提供个性化服务或功能。保护隐私:Cookie通常被用来提供个性化体验,但也可能对用户隐私构成潜在威胁。为此,现代浏览器提供了设置选项,让用户选择是否接受或拒绝Cookie,以便保护隐私。总的来说,Cookie是一种在网站和用户之间交换信息的常见机制,被广泛用于提供更个性化和流畅的用户体验。设置COOKIEsetcookie ( $name, $value ,$expire , $path ,$domain )说明:1)$name //cookie的名称 string/array 如设置:setcookie('c1[k1]', 值);读取:$_COOKIE'c1'2)$value // cookie 的值 string ;而 session 的value没有限制可以是数组3)$expire//过期时间,单位, 秒,当前时间戳加上秒数, time()+3600,//有效时间1小时. time()+604800,一周时间4)$path . // 有效默认为当前根目录及所有的子目录有效路径, 5)$domain // 有效域名. 默认为当前的域名, 如: www.abc.comPS: setcookie() 函数之外,您还可以使用 header() 函数来设置 Cookie。它相对来说更底层,因为需要手动构建 Set-Cookie 头信息并发送给浏览器。这种方式相对复杂,一般情况下建议优先选择 setcookie() 函数。拓展:设置cookie的三种方法获取COOKIE的方法在 PHP 中,获取 Cookie 的方法主要有两种:使用 $_COOKIE 超全局数组: PHP 中的 $_COOKIE 超全局数组用于获取客户端发送的 Cookie 值。当客户端向服务器发送请求时,其中包含了之前设置的 Cookie 值,这些值会存储在 $_COOKIE 超全局数组中。通过 $_COOKIE['cookie_name'] 的方式可以直接获取特定 Cookie 的值。使用 $_SERVER 超全局数组: 可以通过 $_SERVER 超全局数组中的 HTTP_COOKIE 变量来获取客户端发送的所有 Cookie。您可以使用 $_SERVER['HTTP_COOKIE'] 访问所有的 Cookie 数据,然后根据需要解析其中的特定 Cookie 值。删除COOKIE的方法第一种:setcookie(‘名’,’’,time()-1); //将值设置过期第二种:setcookie(‘名’,’’); //将值设置为空第三种:setcookie(‘名’); //只设置cookie的名称COOKIE的有效期有两种存储类型的Cookie:会话性与持久性。Expires属性缺省时,为会话性Cookie,仅保存在客户端内存中,并在用户关闭浏览器时失效。持久性Cookie会保存在用户的硬盘中,直至生存期到或用户直接在网页中单击“注销”等按钮结束会话时才会失效 。SESSION什么是SESSION?在 Web 开发中,"Session"(会话)是指在服务器端存储有关特定用户会话信息的一种方式,用于跟踪用户在网站上的状态和活动。与 Cookie 不同,Session 数据存储在服务器上而不是用户的计算机上,通常通过一个唯一的 session ID 来识别和管理每个用户的会话。以下是关于 Web 会话的一些重要信息:工作原理:当用户访问一个网站时,服务器会为该用户启动一个新的会话并分配一个唯一的 session ID。这个 session ID 通常以 Cookie 的形式发送给用户的浏览器,并在用户的每个请求中返回给服务器。服务器会使用 session ID 来检索与特定用户相关的会话数据(如登录状态、购物车内容、用户偏好设置等),以便为用户提供个性化的体验。数据存储:会话数据通常存储在服务器端的内存中或持久性的存储介质(如数据库)中。这使得服务器能够动态地跟踪和更新用户的会话信息。用途:会话可用于跟踪用户的登录状态,以及在用户访问网站期间维护用户的状态。可用于实现购物车功能、个性化内容展示和其他基于用户状态的操作。安全性:与 Cookie 不同,Session 数据存储在服务器端,因此在安全性方面更可靠,用户无法直接访问或修改会话数据。总的来说,Session是一种在服务器端跟踪用户状态和活动的机制,可实现个性化的用户体验并帮助网站动态地管理用户的状态信息。开启SESSION会话功能session_start(); //在设置和获取时必须要开启session. 作用:1.生成一个新的sessionid号2.判断当前是否已经开启,如果已经开启则不会再生成一个新的id. 3.注意: 一个页面只能开启一次.获取当前的SESSION的ID值session_id(); //echo session_id();获取当前的SESSION的cookie名称session_name(); 删除SESSION数据unset session_destroy() 如何彻底删除SESSION?1)unset() //将变量销毁2)session_destroy()//删除当前session文件3)将session的id删除 (删除cookie)4)setcookie(名,值,time()-99999);例如:setcookie(session_name(),session_id(),time()-999999);SESSION的垃圾回收什么是SESSION的垃圾回收? 在用户非正确退出时,在服务器生成的session文件会一直存在. 时间一长,这样的文件越来越多. PHP引擎会将这部分文件按时间,按一定的比例进行删除. SESSION垃圾回收时间(session.gc_maxlifetime), //默认是1440, 即24分钟,文件超过24分钟没有再被访问,即为垃圾文件.在php.ini中相关设置:回收的概率(session.gc_probability, session.gc_divisor)session.gc_probability //默认为1session.gc_divisor//默认为1000SESSION相关配置1.session.name = PHPSESSID2.session.auto_start =0 关闭, 1为自动开启session (不建议自动开启)3.session.cookie_lifetime=0 //代表浏览器关闭,会话结束4.session.cookie_path=/ //指定了要session会话 cookie 的有效路径5.session.cookie_domain //指定了要session会话 cookie 的有效域名脚本设置: 注意: 要在session_start()之前进行设置才有效. a)ini_set('session.cookie_path', '/');b)ini_set('session.cookie_domain', '.mydomain.com');c)ini_set('session.cookie_lifetime', '1800');SESSION和COOKIE的区别1.存放的位置2.安全性3.网络传输量4.生命周期问题:如果用户将浏览器的cookie禁用,问session还能使用吗?为什么?如何解决?处理方法: 自己来通过链接来传递session_id;在链接上通过常量来设置: SID //是PHP提供的常量 其值为Session的名称=session的id值即: Session_name()=session_id()处理页面: 拓展:会话技术Cookie 和 Session
2024年02月21日
11 阅读
0 评论
0 点赞
2024-02-21
常见的几种HTTP状态码
HTTP状态码用于告知客户端与服务器之间发生的情况,以下是一些常见的HTTP状态码及其含义:1xx 信息性状态码(Informational):100 Continue:收到请求的初始部分,客户端应继续请求。101 Switching Protocols:服务器已经理解了客户端的请求,将通过升级协议来完成这个请求。2xx 成功状态码(Success):200 OK:请求成功。201 Created:请求已经被实现,且创建了一个新资源。204 No Content:服务器成功处理了请求,但没有返回任何内容。3xx 重定向状态码(Redirection):301 Moved Permanently:永久重定向。302 Found:临时重定向。304 Not Modified:资源未被修改(直接从本地加载资源)。4xx 客户端错误状态码(Client Error):400 Bad Request:客户端发送的请求在语法上有错误。403 Forbidden:服务器理解请求但拒绝执行(没有限访问权)。404 Not Found:请求的资源不存在。5xx 服务器错误状态码(Server Error):500 Internal Server Error:服务器遇到错误,无法完成请求。502 Bad Gateway:充当网关或代理的服务器从上游服务器收到无效响应。503 Service Unavailable:服务器暂时不可用,通常是由于维护或超载。504 Gateway Timeout: 网关超时。这意味着服务器作为网关或代理,在规定的时间内未能从上游服务器接收到响应。通常发生在后端服务器响应延迟或超负荷导致无法及时返回数据时。这些状态码帮助客户端和开发人员了解请求过程中发生的各种情况,有助于调试和处理网络请求问题。
2024年02月21日
11 阅读
0 评论
0 点赞
2024-02-18
几个编程学习的网站
搜资料盘搜联盟皮卡搜索教程IT教程吧易百教程jAVAJava 全栈知识体系
2024年02月18日
16 阅读
0 评论
0 点赞
2024-02-06
2024年备考系统架构设计师
https://mp.weixin.qq.com/s/tKuqL3tqVrpBegu7aFaqnQhttps://mp.weixin.qq.com/s/15Dt2HtehxBdrZbxXROCiQ备考时间轴起始于2024年2月6日2月6日~11日陆续收集备考资料2月12日制定备考计划2月13日~14日完成 第一章 计算机基础知识 的 第一节 计算机系统基础 “计算机组成与结构.pdf”和“系统配置与性能评价.pdf”视频学习以及 刷题证书价值证书长期有效以考代评单位评职称,升职加薪找工作,提升职场竞争力人才引进,人才补贴直接落户或积分落户入专家库,成为评标专家(有高级证书后工作满8年可申请)招投标时加分项考试报名时间每年五月第三周周六考试,一般春节后二月中下旬开始报名。官网报名(成绩查询)网站中国计算机技术职业资格网(http://www.ruankao.org.cn/)考试说明1.考试要求:(1)具有系统工程的基础知识;(2)掌握开发信息系统的综合技术知识(硬件、软件、网络、数据库);(3)熟悉企业和政府信息化建设,并具有组织信息化战略规划的知识;(4)熟练掌握信息系统开发过程和方法;(5)熟悉信息系统开发标准;(6)掌握信息安全的相关知识与技术;(7)理解软件质量保证的手段;(8)具有经济与管理科学的相关基础知识,熟悉有关的法律法规;(9)具有大学本科的数学基础;(10)熟练阅读和正确理解相关领域的英文文献。2.通过本考试的合格人员熟悉应用领域的业务,能分析用户的需求和约束条件,写出信息系统需求规格说明书,制订项目开发计划,协调信息系统开发与运行所涉及的各类人员,能指导制订企业的战略数据规划,组织开发信息系统,能评估和选用适宜的开发方法和工具,能按照标准规范编写系统分析、设计文档,能对开发过程进行质量控制与进度控制,能具体指导项目开发;具有高级工程师的实际工作能力和业务水平。3.本考试设置的科目包括:(1)信息系统综合知识,考试时间为150分钟,笔试,选择题;(2)信息系统分析与设计案例,考试时间为90分钟,笔试,问答题;(3)信息系统分析与设计论文,考试时间为120分钟,笔试,论文题。科目一:综合知识客观题:75空满分:75分科目二:案例分析主观题:5道大题(只做3道)第1道必答,后4道选答2道科目三:论文论文题:4道题选做1道笔试还是机考?机考根据软考办规定,自2023年下半年起全国计算机技术与软件专业技术资格(水平)考试各级别、各资格、各科目考试方式均由纸笔考试调整为计算机化考试(无纸化考试),因此,2024年软考所有科目仍然是采用机考形式的。学习计划(2024年2月12日制定)第一阶段学习计划(刷视频+做题,2月份搞定上午题):1、复习目标:上午选择题考试无忧,掌握系分整体知识结构。2、复习时间: 约100个小时,个人自己规划。3、要完成的事情(重要) 3.1学习完基础视频课程 3.2重点理解记忆视频课程配套课件. 3.3做完对应章节课后习题。4、怎么完成这些事:结合课件学习视频课程,每学习完一章视频立即回顾课件内容,而后做对应章节课后习题,视频资料都是配套的,不要全部看完视频再做习题。Tips:做错的题目,忘记的知识点,应该截图或者拍照保存下来,便于后面回顾。第二阶段学习计划(刷视频+做题+背知识点写论文,3月份搞定案例分析、论文写作):1、复习目标:案例分析、论文写作无忧。2、复习时间:约70个小时,个人自己规划。3、要完成的事情(重要): 3.1学习完视频课程案例分析专题+论文写作专题。 3.2看完案例分析、论文写作对应内部精华讲义。 3.3完成课后习题练习,案例分析课后习题一定要自己不看答案动手写,自己思考,一次性完成一年的真题,论文写作可以穿插其中,一周一篇。4、怎么完成这些事:无论案例还是论文,一定要多做、多写、多思考,养成自己的思维习惯。第三阶段学习计划(4、5月份查缺补漏):1、学习目标:查缺补漏,不断优化,无论什么题型,都能稳过。2、学习时间:约50个小时。3、要完成的事情(重要): 3.1按照考试大纲、官方教材复习理解每个知识点。 3.2上午题:一定要背精华知识点,掌握精华知识点上午无忧。 3.3案例题:软件全生命周期的知识必须全部理解背下来,确保第一题无忧,有 必要再看案例分析专题讲解,重点看老师针对陌生的技术如何分析,如何联想,自己多练习掌握应试技巧。 3.4论文题:掌握论文写作规范,考前一周背至少4到5篇论文。备考资料1. 24年系统分析师备考资料上新了~~(免费送)附带系统架构设计师最新考纲资料关注公众号,扣“系统架构师”回车,即可获得系统架构设计师备考资料!!!链接:https://pan.baidu.com/s/1kHH8c7gxA2AQKFKQxIU2dw?pwd=u9g5 提取码: u9g52. 希赛2024年软考高级系统分析师附资料分享2024系统分析师.rar刷题软考达人软考PC题库: https://ruankaokao.com/备考经验1. 系统架构设计师备考经验,系统分析师也适用1、资料选择需要买教材嘛?本人并没有买,712页的教材,比我们标书都厚,看不下去。教材买不买还是因人而异。我碎片时间比较多,我看的PDF电子版(可以导入微信读书,非常方便),坐地铁、上厕所、上班摸鱼都可以看。特别注意,教材去年已经更新了,大家记得看第二版,别看老教材,差别蛮大的。2、备考总体策略总体策略:看视频+刷真题 +背知识点+背论文模板备考时间?建议报完名之后,开始备考,2个月时间差不多。(基础差的可以多加1个月备考)3、综合知识(选择题)我用的「软考达人」小程序题库,全部免费刷题、还有免费资料视频。备考方式:先练习真题,然后结合章节练习背知识点,最后练习模拟题,不会的找教材出处,记笔记。(笔记非常重要,考前拿出来回顾特别有效,很容易遇到相同考点的)选择题注意事项:1)练题中很多不熟悉的知识和概念要认真对待,如果不认真对待直接去考,绝大部分答案全靠猜了。2)千万别眼高手低,任何题目都要认真对待,说不定就考中了。3)选择题很考基础的,需要花费大量时间备考,我备考2个月几乎每天抽1-2小时学习。4、案例分析下午案例分析和论文连着考,案例分析交卷,不用出去,立马写论文。案例分析留90分钟考试时间,总共五道大题,每道大题25分,第一题必答,二到五题四选二,共需要做三道题。第一题必答,(大数据~哭)。第二至第五题,有一道是嵌入式系统设计,如果不干嵌入式工作,建议直接不看(也不备考此题)。案例分析注意事项:1)案例分析一定要刷近三年的真题,分类进行练习,总结出自己的答题框架。2)知识点一定要背,并且能默写。案例分析基本全是知识点套,老师也按知识点打分,答题时将知识点分条列项写出,方便老师阅卷。3)90分钟做三道题,时间看似很宽裕,其实不然,时间相当紧。4)切记不要花太多时间在选题上,题目感觉拿分差不多就选更熟悉的。5)机考有草稿纸,可以写答题思路,思路写好就直接答题(草稿纸无限的,随便要)。最后,考试的时候尽可能多写出相关内容,对于没把握的知识点,都可以写上,这样能覆盖更多关键字。(不会做也要多多写,反正即便写错,也不会扣分)5、论文论文留120分钟,考试会出4道论文题目,需要选一道题目写。论文是有字数要求的,要求大于2200字以上,最合适2500字左右。(群里面有考友说1500字也过了,看来论文很看老师心情的)论文模板大概长这样:摘要段(大约200字)+背景段(大约500字)+过渡段(大约200字)+过程段(大约1200字)+结尾(大约300字)论文注意事项:1)一定要准备论文模板,120分钟光敲2000多字已经够呛了。还要去想如何写,那难度可想而知。论文建议只是4-5篇模板,并且要牢记背下来。2)除了过程段需要结合实际项目来写,其他段都可以提前背,那这样写1000多字就不难了3)论文建议考前至少留一周背模板。2. 2个月拿下信息系统项目管理师(高项 )经验~1、 复习时间安排上半年高项考试时间:2024.5中旬。备考时间:有工作经验的留2个月准备就够了,没有工作经验的建议至少留3个月准备。对于报不报班,看个人经济和自觉能力。对于我,自认为学习能力还不错,就在网上找的视频看,一直刷题背考点,反复刷题直到正确率达到80%以上。2、 复习步骤和具体方法第一阶段:看视频为主、刷几套真题为辅1) 开2倍速看视频,了解考试重点。2) 刷历年真题,先刷最近3年的历年真题,了解考试出题规则,考哪些知识点。第二阶段:看考试大纲,看教材记重点1)一章一章的看教材,一章一章的整理笔记(我个人不喜欢看书,700多页看着太累了,我直接刷题背知识点,建议同学别学)2)看完每章节,结合题库刷章节题(「软考达人 」上都有),检查一下知识点是否记住,没记住多看解析,出题知识点和教材还是有差别,建议按照题库的知识点记忆。第三阶段:刷题+背案例题知识点、框架+背论文范文1)备考刷题时减少蒙题,知道的就快速划过,不知道或者模糊的题,要细细看解析,背知识点(说不定就考中了)2) 案例题是计算和分析答题方式,在刷题时一定要准备几个答题框架。3) 论文时间充裕的情况下,多准备几个范文框架,考试时现想时间是不够的。关于每个阶段的学习情况,很多人可能和我一样上班族,也可能刚毕业的学弟学妹,大家根据自身情况学习规划和灵活调整。3、 复习小技巧另外复习中有一些小技巧。1)选择题可以多做题,建议找最新权威的软考题库。2)论文比较困难,需要多花功夫,准备模板框架,至少准备4个以上。比如:首先介绍项目背景,发起单位等,然后正文部分,项目管理工具在项目中所起的作用,最后反思总结这样。3)若有大量的概念知识不懂,要立马停下,先看教程再做题,不要麻痹自己。4)不要太迷信论文押题,近几年的押题一般都不太准。PS:欢迎交流!分享资料,分享经验,all in 一次上岸不止软考,开启漫漫考证之旅。
2024年02月06日
104 阅读
5 评论
0 点赞
1
...
3
4
5
...
158