Web全栈开发1+x(中级)PHP&MySQL知识

一、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()

echoprint 的区别
共同点:都只能输出 字符串,整型跟int型浮点型数据。不能打印复合型和资源型数据;
区别:echo 可以连续输出多个变量,而print只能一次输出一个变量。print打印的值能直接复制给一个变量
如 $a = print123;

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):truefalse。
    整 型(integer)范围:2^322^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,4455];
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 (表达式) {
case1: 语句;break;
case2: 语句;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_object
 10. 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、__require
   B、__set 			  魔术方法在我们尝试修改一个不可访问的属性时会被调用
   C、__call 		  魔术方法__call()在调用不存在或不可访问的方法时会被调用。
   D、__autoload       通过定义这个函数来启用类的自动加载。


  • 7
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端大斗师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值