我们是⼀个 前端开发⼯程师
还有⼀个⼯作叫做后端开发⼯程师
我们⼀个⽹站的组织架构基本上由下⾯的步骤完成
⽤户 => 前端 => 后端 => 数据库
整个过程中:
⽤户向前端⼈员要⼀个⽹⻚
前端⼈员准备⼀个⽹⻚给⽤户,但是⽹⻚中的数据是找后端⼈员要的
后端⼈员接受到前端⼈员要数据以后,去数据库⾥⾯找到对应的数据,给
到前端⼈员
前端⼈员拿到数据以后渲染在⻚⾯上
最后把这个⻚⾯给到⽤户看
⽐如: 我们浏览⼀个新闻⽹站
⽤户输⼊⽹址
前端⼈员就要把对应的⻚⾯给到⽤户,在⻚⾯打开的过程中,向后端⼈员索要新闻信息
后端⼈员接收到前端⼈员索要新闻信息以后,就去数据库中找到对应的新闻信息数据给前端⼈员
前端⼈员接收到后端⼈员给的新闻信息以后,使⽤我们的办法把新闻信息数据渲染在⻚⾯上
⻚⾯就打开了,⽤户就可以看到⼀个新闻⽹站了
⽐如: ⽤户登陆⼀个⽹站
当⽤户书写完表单内容以后,点击提交按钮的时候
前端⼈员拿到⽤户填写的内容,把数据整合好传送给后端⼈员
后端⼈员接收到数据以后,去数据库中进⾏⽐对,看看有没有对应的数据
然后告诉前端⼈员,你给我的⽤户名和密码是否正确
前端把信息反馈给客户看到
如果正确那么就是跳转⻚⾯
如果不正确提示⽤户名或者密码有问题,重新输入或者...
2.1 什么是服务器?其实说⽩了,服务器就是⼀个电脑,当他跑起来⼀些程序的时候,就变成了⼀个服务器,只不过会跑⼀些特殊的程序,需要⼀些特殊的环境,电脑不他⼀样⽽已
换句话说,我们⾃⼰的电脑,跑⼀些特殊的程序的时候,也可以当作⼀个⼩型的服务器来⽤,只不过计算能⼒/存储能⼒/转存能⼒没有专业的服务器电脑厉害⽽已。
⽐如我们的经常访问的 www.baidu.com
这个⾥⾯就包含很多的内容,我们看到的这个只是⼀个省略后的内容
是浏览器帮我们省略掉了⼀些内容
全部的地址应该是 https://www.baidu.com:443
发现多了两个东⻄ https://和 :443
其实⼀个简单的 url 地址是由三部分组成的
传输协议
域名
端⼝号
传输协议
我们常⻅的传输协议是 http 和 https
他们是限制⽤户和服务器之间交流传输数据的⽅式和规则
也是前端和后端⼈员交互的规则
规则
建⽴连接通道
相互通信
关闭连接通道
只不过 http 是⼀种常⻅协议,不是很安全
https 是⼀种加密传输协议
域名
端⼝号
百度
那么现在,我们再回过头去看百度的完整 url 地址
https://www.baidu.com:443
以⼀种加密传输协议来通讯
访问的是⽹络上 IP 的值为 119.75.217.109 的那个电脑
访问的是第 443 号⽂件夹
这个⽂件夹⾥⾯存储着⼀个百度的⻚⾯
我们就能看到这个⻚⾯了
PHP :⼀⻔后端语⾔
为什么要学习⼀个后端语⾔呢?
⽬前市场上的需求,要求前端⼈员掌握⼀个后端语⾔
⽅便和后端开发⼈员进⾏交互
3.1 PHP基本语法
3.2 php⽂件的书写
# php 的代码写在这⾥
?>
定义变量
# 下⾯就是⼀个定义了⼀个变量,并且赋值为 100
# 变量名就是 $num
$num = 100;
$boo = true;
# 下⾯是⼀个字符串
$str = "你好 php";
?>
条件语句
在 php 中使⽤条件语句和 js 基本⼀致
$boo = true;
if ($boo) {
echo '你好,欢迎观临!';
} else {
echo '您还没有登陆';
}
?>
循环语句
在 php 中循环语句和 js 基本⼀致
$num = 5;
for ($i = 0; $i < $num; $i++) {
echo 'hello php'; }
?>
字符串拼接
在 php 中,字符串拼接不再是使⽤ + 进⾏拼接了,⽽是使⽤. 进⾏拼接
$str = 'hello ';
$str2 = 'world';
$str3 = $str . $str2;
echo $str3;
# 得到的就是 hello world
数组
在 php 中的数组和 js 中特别不⼀样
# 创建⼀个数组
$arr = array(1, 2, 3);
print_r($arr);
# Array ( [0] => 1 [1] => 2 [2] => 3 )
# 这个就类似于我们 js 中的数组,按照索引来的
# 创建⼀个关联数组
$arr2 = array('name' => 'Jack', 'age' => 18, 'gender' => '男')
print_r($arr2)
# Array ( [name] => Jack [age] => 18 [gender] => 男 )
# 这个就类似于我们 js 中的 对象,键值对的形式
?>
mysql 是⼀个数据库的名字 和 php 合作的⽐较好的数据库
之前我们说过⼀个问题,前端向后端索要数据,后端就是去数据库中查询数据,返回给前端
MySQL 是最流⾏的关系型数据库管理系统(⾮关系型数据库简略介绍)
关系数据库管理系统(Relational Database Management System)的特点
数据以表格的形式出现
每⾏为各种记录名称
许多的⾏和列组成⼀张表单
若⼲的表单组成database
主键:主键是唯⼀的。⼀个数据表中只能包含⼀个主键。你可以使⽤主键来查询数据。
4.1 数据库的数据类型
* 数值类型
| 类型 | ⼤⼩ | ⽤途 |
| ------ | ------ | ------ |
| TINYINT | 1 字节 | ⼩整数值 |
| SMALLINT | 2 字节 | ⼤整数值 |
| MEDIUMINT | 3 字节 | ⼤整数值 |
| INT或INTEGER | 4 字节 | ⼤整数值 |
| BIGINT | 8 字节 | 极⼤整数值 |
| FLOAT | 4 字节 | 单精度 浮点数值 |
| DOUBLE | 8 字节 | 双精度 浮点数值 |
| DECIMAL | | ⼩数值 |
* ⽇期和时间类型
| 类型 | 格式 | ⽤途 |
| ------ | ------ | ------ |
| DATE | YYYY-MM-DD | ⽇期值 |
| TIME | HH:MM:SS | 时间值或持续时间 |
| YEAR | YYYY | 年份值 |
| DATETIME | YYYY-MM-DD HH:MM:SS | 混合⽇期和时间值 |
| TIMESTAMP | YYYYMMDD HHMMSS | 时间戳 |
* 字符串类型
| 类型 | ⼤⼩ | ⽤途 |
| ------ | ------ | ------ |
| CHAR | 0-255字节 | 定⻓字符串 |
| VARCHAR | 0-65535 字节 | 变⻓字符串 |
| TINYBLOB | 0-255字节 | 不超过 255 个字符的⼆进制字符串 |
| TINYTEXT | 0-255字节 | 短⽂本字符串 |
| BLOB | 0-65 535字节 | ⼆进制形式的⻓⽂本数据 |
| TEXT | 0-65 535字节 | ⻓⽂本数据 |
| MEDIUMBLOB | 0-16 777 215字节 | ⼆进制形式的中等⻓度⽂本数据 |
| MEDIUMTEXT | 0-16 777 215字节 | 中等⻓度⽂本数据 |
| LONGBLOB | 0-4 294 967 295字节 | ⼆进制形式的极⼤⽂本数据 |
| LONGTEXT | 0-4 294 967 295字节 | 极⼤⽂本数据 |
4.2 操作数据库
使⽤ php 操作数据库的步骤
1.和数据库建⽴链接
# 下⾯就是建⽴链接,$link 会得到⼀个链接信息
# $link = mysql_connect('ip地址', '数据库⽤户名', '数据库密码');
?>
我们有了链接信息$link以后就可以继续去操作数据库了
2.确定操作哪个库
# 下⾯就是确定你要操作哪个库
# mysql_select_db('你要操作的库的名称', $link);
?>
3.执⾏ sql 语句操作数据库
# 下⾯就是使⽤ sql 语句对数据库进⾏操作
# $res = mysql_query('你要执⾏的 sql 语句');
?>
这⾥有⼀个注意的点:
我们拿到的结果是⼀个我们看不懂的处理信息
需要使⽤ mysql_fetch_row || mysql_fetch_assoc 解析⼀下结果才能看
得懂
4.关闭链接
# mysql_close($conn);
?>
完整步骤
我们完整的写⼀下操作的步骤
$link = mysql_connect('localhost', 'root', 'root');
mysql_select_db('test1913');
$res = mysql_query('SELECT * FROM `student`');
$row = mysql_fetch_assoc($res);
mysql_close($link);
print_r($row);
?>
5.常⽤的 sql 语句
(1) 查询语句
# 查询 student 这个表⾥⾯的所有数据
$sql = 'SELECT * FROM `student`';
# 查询 student 表中的数据⾥⾯ gender 为 男 的数据
$sql = 'SELECT * FROM `student` WHERE `gender`="男"';
# 查询 student 表中的数据⾥⾯ age ⼤于 18 的数据
$sql = 'SELECT * FROM `student` WHERE `age`>18';
# 查询 student 表中的数据⾥⾯ age ⼤于 18 且 gender 为 男 的数据
$sql = 'SELECT * FROM `student` WHERE `age`>18 AND
`gender`="男"';
# 查询 student 表中的数据⾥⾯ age ⼩于 22 或者 age ⼤于 28 的数据
$sql = 'SELECT * FROM `student` WHERE `age`<22 OR `age`>28';
# 查询 student 表中的数据⾥⾯从 第⼏条开始 查询多少条
$sql = 'SELECT * FROM `student` LIMIT 0, 10';
# 先按照条件筛选出数据以后再进⾏分⻚查询
# 下⾯是查询表中所有 age>18 且 性别为男的所有数据,查出来以后从第 10 条
开始查 10 条
$sql = 'SELECT * FROM `student` WHERE `age`>18 AND
`gender`="男" LIMIT 10, 10';
# 查询表的模糊查询
# 下⾯表示查询表中所有数据⾥⾯ name 字段中包含 "三" 字的数据
$sql = 'SELECT * FROM `student` WHERE `name` LIKE "%三%"';
# 查询排序,查询的时候按照某⼀个字段升序或降序排序
$sql = 'SELECT * FROM `student` ORDER BY `age` ASC';
$sql = 'SELECT * FROM `student` ORDER BY `age` DESC';
?>
(2) 增加语句
# 向表中增加⼀条数据,再增加的时候主键不能由我们书写,⽽是 mysql 数据库
⾃⼰递增
$sql = 'INSERT INTO `student` VALUES(null, "张三", 18, "男",
1913, 100)';
# 插⼊固定⼏个键的数据,其他的⽤默认值
$sql = 'INSERT INTO `student` (`name`, `age`) VALUES("李四",
22)';
?>
(3) 删除语句
# 删除表中 id 为 100 的数据
$sql = 'DELETE FROM `student` WHERE `id`=100';
# 删除表中 name 为 张三 的数据
$sql = 'DELETE FROM `student` WHERE `name`="张三"'
?>
(4) 修改语句
# 更新⼀条 id 为 100 的数据中的 name 字段的值和 age 字段的值
$sql = 'UPDATE `student` SET `name`="张三", `age`=10 WHERE
`id`=100'
# 更新数据的时候让所有的数据增加⼀些内容
$sql = 'UPDATE `student` SET `age`=age+1'
?>
最后是常⽤的有些sql语句规范:
结:以上就是前后端交互的重点内容,下一次将更新前后台交互重要的工具AJAX,喜欢的小伙伴可以点赞,关注一波