Web全栈开发1+x(中级)PHPMySQL知识
一、PHP技术与应用
1.1 简介
PHP(原名 Personal Home Page的缩写,已经正式更名为 “PHP: Hypertext Preprocessor”,中文名:“超文 本预处理器”)是一种通用开源脚本语言。
1.2 语言基础
1.2.1 注释符与结束符
// 单行注释
/* 多行注释 */
// 结束符使用英文分号 “;”
1.2.2 常用命令和系统函数
echo
echo输出 : 只能输出字符串、数字、布尔(true:1 false:空)类型的数据。var_dump()
此函数显示一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构
print_r()echo 和 print 的区别
共同点:都只能输出 字符串,整型跟int型浮点型数据。不能打印复合型和资源型数据;
区别:echo 可以连续输出多个变量,而print只能一次输出一个变量。print打印的值能直接复制给一个变量
如 $a = print “123”;2.var_dump()和print_r()的区别共同点:两者都可以打印数组,对象之类的复合型变量。区别:print_r() 只能打印一些易于理解的信息, var_dump()不但能打印复合类型的数据,还能打印资源类型的变量。且var_dump()输出的信息则比较详细,一般调试时用得多。
1.2.3 变量
声明变量:$
$变量名 = 表达式;
// 命名规则:字母数字下划线、首字符不能为数字、严格区分大小写、且不能使用关键字!推荐驼峰命名法。
1.2.4 常量
使用 define关键字定义常量,常量命名要全部大写,常量的数据类型不能是资源、对象。
define('常量名',表达式);
const 常量名 = 表达式;
// 示例:
define("FRONT_END","前端开发");
1.2.5 PHP常用数据类型
四种标量类型
布尔型(boolean):true或false。 整 型(integer)范围:2^32 或 2^64(超出自动转换为浮点型)。 浮点型(float)范围:双精度。 字符串(string):单引号(不支持解析变量)或双引号(支持解析变量,不支持表达式)引起来的内容。
两种复合类型
数组型(array)
对象型(object)
两种特殊类型
资源型(resource):变量可以是文件夹、一个文件、从数据库中得到的结果集等。
空 型(null):表示一种状态,变量没有任何值。
1.2.6 数组
1.2.6.1数组类型
- 关联数组:下标为有意义的字符串。
- 索引数组:下标为默认从 0 开始的数值。
1.2.6.2 定义数组
1)直接赋值方式定义
$a[] = 10;
$a[] = 20;
$a['name'] = '张三';
$a['sex'] = '男';
2)使用 array()函数
$b = array(10,20,30);
$b = array('name'=>'张三','sex'=>'男','age'=>28);
3)快捷赋值
$c = [10,20,30];
$c = ['name'=>'张三','sex'=>'男','age'=>28];
1.2.6.3 多维数组
// 二维数组
$group = array(
'one'=>array('张三','李四','王五'),
'two'=>array('赵六','孙七'),
);
// 定义一个三维数组
$class = array(
'class01'=>array(
'one'=>array('张三','李四','王五'),
'two'=>array('赵六','孙七'),
)
// 获取李四
echo $class['class02']['one'][1]; // 李四
1.2.6.4 遍历数组
//for 遍历索引数组 ------------------------------------------------------
$arr = [11,22,33,44,55];
for($i=0; $i<count($arr); $i++){var_dump($arr[$i]);
};
//foreach------------------------------------------------------------
$f_arr=["name" => "zhangsan","age" => 18,"sex" => "m"];
foreach ($f_arr as $key => $value) {echo $key.":".$value."<br>";
};
1.2.6.5 运算符
算术运算符 + - * / %
赋值运算符 = += -= *= /= %= .=
比较运算符 > >= < <= != !== == ===
逻辑运算符 && || not and or
字符串运算符 .
三元运算符 ==? :
错误抑制符 @
提升优先级符号 ()
1.2.6.6 流程控制
if…else 语句
if (条件){语句;
}else if (条件){语句;
} else {语句;
}
// 案例
$score = 66;
if($score >= 80 && $score <= 100){echo '优';
} else if ($score >= 70 && $score <= 79){echo '良';
} else if ($score >= 60 && $score <= 69){echo '及格';
} else {echo '不及格';
}
switch语句
switch (表达式) {case 值1: 语句;break;
case 值2: 语句;break;
...
default:
语句;
}// 案例
$action = 'save';
// 分支
switch($action){case 'save':echo "保存数据!";break;case 'del':echo "删除数据!";break;default:echo "请输入正确数据";
}
1.2.6.7 循环
while循环
While(条件表达式) {// 若条件成立,则执行这里的循环体
// 改变初值的条件 ;
}// 案例代码
$count=0;
while($count<10){// 循环体echo $count.'<br/>';$count++;
}
do…while 循环
do {// 循环体
// 改变初值的条件 ;
} while(条件表达式);// 案例代码
$j=0;
do{ // 循环代码echo $j.'<br/>';$j++;
}while($j>10);
for循环
for(初值;范围;递增) {// 循环体
}
// 案例代码
for($i=0;$i<10;$i++){// 循环代码echo $i.'<br/>';
}
二、数据库
2.1 集成环境
1)安装MySQL(XMAPP集成环境)
XMAPP = Apache+MySQL+PHP+perl
2.2数据库操作
2.2.1 数据库简介
MySQL属于关系数据库。
SQL(Structured Query Language)是用于访问和处理数据库的 标准计算机语言。
使用 SQL 访问和处理数据系 统中的数据,这类数据库包括:Oracle,mysql,Sybase, SQLServer, DB2, Access 等等。
SQL语言由DDL、DML、DQL、DCL等几部分语言组成。
SQL 对大小写不敏感,一般数据库名称、表名称、字段名称全部小写。
MySQL要求在每条 SQL 命令的末端使用分号。
2.2.2 SQL语言分类
2.2.2.1 DML
(data manipulation language)数据操纵语言:
简记:增删改查
SELECT 列名称 FROM 表名称
SELECT * FROM news;UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
UPDATE news SET title="我是标题" WHERE id=1;INSERT INTO table_name (列1, 列2) VALUES (值1, 值2)
INSERT INTO news VALUES (NULL,"字段1内容","字段2内容");DELETE FROM 表名称 WHERE 列名称 = 值
DELECT FROM news WHERE id=1;
2.2.2.2 DDL
(data definition language)数据库定义语言:比如说:CREATE、ALTER、DROP等
CREATE TABLE 表名称
(
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,
....
)
CREATE TABLE student(
id int,
name varchar(20),
sex enum('男','女')
);ALTER TABLE table_name //用于在已有的表中添加、修改或删除列。
ALTER COLUMN column_name datatype // 改变表中列的数据类型DROP TABLE 表名称 //删除表
DROP DATABASE 数据库名称 //删除数据库
2.2.2.3 DCL
(Data Control Language)数据库控制语言:
用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。这个比较少用到。
2.3数据库基操和字段约束
2.3.1登陆与退出
mysql -u 用户名 -p 密码 -h 主机名 -p端口-- 或者 ** 为注释 //注释之后一定要加一个空格exit \q ctrl+c 退出
2.3.2 数据库的创建
create database 库名;create database 库名 default character set utf8_general_ci;
// 创建数据库并设置编码格式和排序规则
2.3.3 查看数据库
show databases;
2.3.4 删除数据库
drop database 库名;
2.3.5 打开数据库
use 数据库名;
2.3.6 查看当前打开数据库
select database();
2.3.7 MySQL常用数据类型
字符串类型
char 定长字符串
varchar 变长字符串
text 大文本整形
tinyint 极小整形
smallint 小整形
int或者integer 整形
bigint 大整形
浮点型
float 单精度
double 双精度
decimal 定点形日期型
date 日期型
time 时间型
year 年份
datetime 日期时间型
timestamp 时间戳
2.3.8 字段约束
not null/null 非空/空
default 默认值
primary key 主键
auto_increment 自增长
foreign key 外键
unique 唯一
comment 注释
engine=innodb 存储引擎
limit 只写一个默认从0开始
distinct 去重
完整字段约束如下:
# 创建学生表
drop table if exists student;
create table student (
sno varchar(3) not null primary key comment '学号', -- 主键约束(值不能为空,且唯一)
sname varchar(4) not null, -- 非空约束
ssex char(2) characterset big5 collate big5_chinese_ci default "男", -- 默认值约束
sbirthday varchar(10) default null,
class varchar(5) not null ) engine=innodb default charset=utf8; -- 设置编码
2.3.9 查看表结构
desc 表名;
2.3.10 修改表结构
alter table 表名 [add/change/modify/drop] 列名 [类型];
示例如下
添加一列:
alter table 表名 add department varchar(20); ## department字段名修改列:
alter table 表名 modify 字段名 类型(date);
alter table 表名 change 字段名 新字段名 类型(date);
## change可以更改列名和列类型 (每次都要把新列名和旧列名写上, 即使两个列名没有更改,只是改了类型)
## modify只能更改列属性 只需要写一次列名, 比change省事点删除列:
alter table 表名 drop department ## 删除一列
2.3.11 基本查询
select [distinct] * 列表名 as 别名from 表名where 条件group by 列名
SELECT sex,count(*) FROM student group by sex;having 分组条件
SELECT sex FROM student group by sex having avg(age)>20;order by 列名1 [ asc 升序 / desc 降序 ]limit [skip],[count]
2.3.12 聚合函数
sum 对数值型求和
avg 对数值求平均值
max 求最大值
min 求最小值
count 计数 可写成count(*) 或者count(列名)
2.3.12 连表查询
select s.id,s.name,c.cid from student as s join class as c on s.cid=c.cid;
三、Web前端开发中级理论模拟考试
2. 以下哪个标签不是 HTML 5 的语义化标签?( )A、<header></header> 标签定义文档的页眉(介绍信息)。 B、<section></section> 标签定义文档中的节(section、区段)C、<marquee></marquee> D、<article></article> 定义外部的内容。3. 下列( )不属于CSS文本属性。A、font-size 文字大小B、text-transform 控制文本的大小写。 C、text-align 文本对齐方式D、line-through 字符横杠样式8. 关于PHP解析结果集的函数,哪一个是以对象的方式返回一行数据?( )A、mysqli_fetch_row 返回行B、mysqli_fetch_assoc 返回一条关联数组C、mysqli_fetch_array 返回一条数字数组或关联数组D、mysqli_fetch_object10. HTTP状态码的解释错误的是( )。A、200表示服务器响应成功 B、301表示临时跳转C、404表示请求的服务器资源权限不够 请求的资源(网页等)不存在D、500代表程序错误12. PHP中,使( )函数将数组元素组合为字符串。A、explode 把字符串打散为数组:B、trim 移除字符串两侧的字符C、strpos 查找特定字符第一次出现的位置D、implode 将数组元素组合为字符串15. 对一个文件进行写入操作不需要的函数是( )。A、fopen 打开文件B、fread 文件读取C、fwrite 文件写入D、fclose 关闭文件29. 下面哪个不是PHP的魔术方法?( )A、__requireB、__set 魔术方法在我们尝试修改一个不可访问的属性时会被调用C、__call 魔术方法__call()在调用不存在或不可访问的方法时会被调用。D、__autoload 通过定义这个函数来启用类的自动加载。
Web全栈开发1+x(中级)PHPMySQL知识相关推荐
- 【融职教育】Web全栈开发就业班核心优势
IT技能培训行业现在是一片红海,在红海中求生存和发展就要具有一定的特色和竞争优势.本质上都是为学员提供更好的服务,提高教学品质,让学员可以学会技术,掌握足够工作技能,具有向企业交付的能力,让学员不仅可 ...
- Web全栈开发基础(小白入门版本)
博客传送门 近几个月认真写了写Web全栈代码,有点小收获这里分享一下.我还做了个PPT,资源路径 欢迎拍砖指点! Web全栈开发是一个听起来很虎的名词.本文从技术层面解释全栈开发,能帮助没有全栈概念, ...
- web全栈开发项目搭建整体思路和学习路线
web全栈开发 全栈开发技术介绍: 全栈技术指可以完整整个项目搭建的有效集合. 包括:网站的设计,web前端开发,web后端开发,数据库设计,接口和组件,移动端开发,产品设计,系统架构,产品的理念和用 ...
- Web全栈开发训练营
Web全栈开发训练营 学习从头开始构建可发现的.引人入胜的渐进式 Web 应用程序 此视频教程共2.0小时,中英双语字幕,画质清晰无水印,源码附件全 课程英文名:Complete Progressiv ...
- 小白都能看懂的实战教程 手把手教你Python Web全栈开发(DAY 3)
小白都能看懂的实战教程 手把手教你Python Web全栈开发 Flask(Python Web)实战系列之在线论坛系统 第三讲 这是小白都能看懂的实战教程 手把手教你Python Web全栈开发 的 ...
- 简易的web全栈开发——服务器部分
简易的web全栈开发--服务器部分 java sdk的安装 nginx的安装 mysql的安装 node的安装 连接数据库 第一步,买一个云服务器,过程略,买的是个2核4G的轻量应用服务器,预装的是c ...
- 苏州木渎计算机课程培训,苏州木渎H5/web全栈开发培训
课程名称:H5/web全栈开发 课程类型:网页设计 班型:全日制/周末班/晚班 适用校区:全校区 课程详情: 由于网络的发展以及人们使用网络的频繁性,企业需要通过网页呈现产品.服务.理念.文化,或向大 ...
- 【哈士奇赠书活动 - 18期】-〖Flask Web全栈开发实战〗
文章目录 ⭐️ 赠书活动 - <Flask Web全栈开发实战> ⭐️ 编辑推荐 ⭐️ 内容提要 ⭐️ 赠书活动 → 获奖名单 ⭐️ 赠书活动 - <Flask Web全栈开发实战& ...
- 小白都能看懂的实战教程 手把手教你Python Web全栈开发(DAY 1)
小白都能看懂的实战教程 手把手教你Python Web全栈开发 Flask(Python Web)实战系列之在线论坛系统 第一讲 博主博客文章内容导航(实时更新) 更多优质文章推荐: 收藏!最详细的P ...
- 什么是全栈工程师,为什么全栈开发用Python,Python web全栈开发到底有多高薪?
我们经常听到全栈工程师这个词语.那么很多小伙伴还是不明所以,什么是全栈工程师?为什么全栈开发用Python?Python web全栈开发到底有多高薪? 一.什么是Python web全栈工程师? 全栈 ...
最新文章
- Dubbo开源现状与未来规划
- C# 创建Windows服务。服务功能:定时操作数据库
- grade项目导入新external libraries_【易推荐】德意志银行学院中国项目启动
- Eigen(5)Array类和元素级操作
- 移动推送消息送达常见问题与解决办法
- 专家:未来三年为转云时间窗口
- ARCGIS 拓扑规则阐述
- Apollo OpenDRIVE和ASAM OpenDRIVE的区别
- Dempster-Shafer Evidence Theory
- 什么是计算机图形学?
- 实际应用3: 图书数据可视化分析(基于matplotlib的python数据可视化)
- python笔记:7.2.2.2 一元多因素方差分析_交互效应(购房面积影响因素交互效应)
- linux系统卸载git,linux卸载gitlab
- 92套AE抖音快闪模板(精品)
- 征服面试官的50道Redis高频通关面试题
- [线性代数]向量2-范数三角不等式证明
- [Usaco2010Hol]Dotp
- 计算机网络学习——套接字实验(二)
- IOS按钮排列自动换行
- C语言家谱管理程序,[C语言]家谱 - 代码贴 - BCCN