服务器+PHP+MYSQL
1.服务器
1.1.前端认知:
- 前端
- 把后端给的数据展示在页面上(列表页面)
- 把前端的数据传递给后端, 让后端存储起来(注册)
- 后端
- 当前端需要数据的时候, 后端从数据库里面拿到数据给前端
- 把前端传递来的数据存储在数据库里面
- 数据库
- 专门让 后端 进行数据的增删改查
- 流程
- 前端 -> 后端 -> 数据库 -> 后端 -> 前端
- 注意:
- 前端是不能操作数据库的
- 前端相对数据库进行任何操作, 都要把信息告诉后端
- 由后端进行数据库操作
- 把操作的信息反馈给前端
1.2.服务器
- 什么是服务器 ?
- 就是一台在网络 “那一头” 的一台电脑,只不过运行了一些特殊的环境,运行了一个特殊的 “软件”。
- 服务器的作用 ?
- 当一台电脑运行了一个服务器环境以后,在这台电脑上, 就会由一个文件夹被对外开放了, 叫做 服务器空间,只要你在整个服务器空间(文件夹) 里面放上对应的 html 文件,其他的小伙伴就会根据网线找到你这台电脑, 找到对应的文件夹,就可以看到里面的页面了(只读的权限)。
- 运行服务端代码,如果我们写一个后端代码, 那么需要在服务器环境下运行, 因为浏览器不支持后端代码的运行。
- 了解:
- http 传输协议, 浏览器会自动帮你添加 80 端口号
- https 传输协议, 浏览器会自动帮你添加 443 端口号
1.3.集成环境
- WAMP: windows + apache + mysql + php
- MAMP: Mac OS + apache + mysql + php
- LAMP: Linux + apache + mysql + php
2.PHP
2.1.php是 一个后端语言
- 运行需要在 apache 服务器上运行
- 我们要把 php 文件写在 WWW 目录里面
- 在浏览器以 localhost 的形式运行
- .php 代码写在一个 .php 后缀的文件里面
- .html 后缀的文件不认识 php 代码的
- php 文件不允许使用中文命名
2.2.php 里面的三种输出语法
- echo 输出内容;
- print_r(输出内容);
- var_dump(输出内容);
2.3.三种输出语法的详细区别
- echo
- 只能输出基本数据类型, 复杂数据类型会报错
- 遇到布尔值的时候, true 会输出 1, false 会输出空白内容
- print_r()
- 可以输出所有数据类型
- 遇到布尔值的时候, true 会输出 1, false 会输出空白内容
- var_dump()
- 可以输出所有数据类型
- 遇到布尔值会正常输出 true 输出 true, false 输出 false
- 并且会带有数据的类型和数据的信息
2.4.php 里面的字符串
- 在 js 里面 字符串的定义由两种
- 单引号,双引号,这两个没有任何区别
- 在 php 里面 字符串 定义也是两种方式(两种方式是有区别的)
- 单引号: 就是普通字符串
- 双引号: 是一个特殊字符串, 可以在字符串里面直接解析变量,类似jsES6的模板字符串
2.5.php 里面的字符串拼接
- 就是把多个字符串连接在一起
- 我们在 js 里面的时候, 使用 加号(+) 就能进行字符串拼接
- 在 php 里面, 加号(+) 只能进行数学运算, 只有 点(.) 才能进行字符串拼接
2.6.索引型数组
- 语法: $arr = array(数据1, 数据2, 数据3, …)
- 按照索引下标进行排列
- 如果向单独获取数组里面的某一个数据,数组名称[对应的索引]
- 等价于 js 里面的数组
2.7.关联型数组
- 语法: $arr = array(key1 => value1, key2 => value2);
- 获取关联型数组里面某一项的值,数组名称[‘你要获取的属性名’]
- 等价于 js 里面的对象
- 注意:
- 不管是 key 还是 value, 需要用引号包裹, 单引号也行, 双引号也行
- 不可以不包裹, 如果不用引号包裹, 会被当作变量来使用(报错)
- 中间用的是 =>, 不是 : 也不是 =
- 数字和布尔值, 不需要引号包裹, 可以直接使用
2.8.php 转换 json 格式的两个方法
- 把 php 的数据格式转换成 json 的数据格式
json_encode()
简记pej- 语法: json_encode(要转换的 php 数据格式)
- 返回值: 转换好的 json 数据格式
- 把 json 数据格式转化成 php 的数据格式
json_decode()
简记jdp- 语法: json_decode(要转换的 json 格式数据)
- 返回值: 转换好的 php 格式数据
2.9.接受前端传过来的数据
$_REQUEST()
$_GET()
$_POST()
2.10.中文解析
header('content-type:text/html;charset=utf-8')
3.MYSQL
3.1.SQL语法
-
sql 语句的语法规范(你可以不遵守, 建议你遵守)
- sql 语句里面的关键字大写
- 表名和字段名尽可能使用反引号(键盘 tab 键上面那个按钮 ``)包裹
-
sql 语句的语法规则(你必须遵守, 不然报错)
- 当你写一些文本内容的时候, 需要使用 引号 包裹, 表示是一个 字符串
-
数据库增删改查
-
增:INSERT关键字
- 一共两种语法:
- INSERT INTO
表名
VALUES(数据1, 数据2, 数据3, …);- 按照你数据库里面字段的顺序插入的
- id 我们可以不写, 直接写 null, 会自动增长
- INSERT INTO
表名
(字段1, 字段2, …) VALUES(数据1, 数据2, …);- 按照你书写的字段添加
- 值添加某些字段的内容, 剩下的稍后完善的时候在做
- INSERT INTO
- 一共两种语法:
-
删:DELETE关键字
- DELETE FROM
表名
WHERE 条件- 要从哪一个表删除条件为什么的数据
- DELETE FROM
-
改:UPDATE关键字
- UPDATE
表
SET 字段=新值 WHERE 条件 - UPDATE
表
SET 字段=新值, 字段2=新值 WHERE 条件
- UPDATE
-
查:SELECT关键字
- SELECT * FROM
表
- 查询这个表里面的所有数据
- SELECT * FROM
表
WHERE 条件- 根据我们的条件查询数据库里面的数据
- SELECT * FROM
表
WHERE 条件1 AND 条件2- 根据两个条件来查询, 两个条件必须都满足
- SELECT * FROM
表
WHERE 条件1 OR 条件2- 根据两个条件来查询, 两个条件满足一个就可以了
- SELECT * FROM
表
WHERE 字段 LIKE ‘%关键字%’- 查询数据里面指定字段包含某一个关键字的数据
- SELECT * FROM
-
3.2.MYSQL数据库的固定操作
- 和数据库进行连接
$link = mysqli_connect('IP地址', '数据库用户名', '数据库密码', '仓库名字');
- 设置字符编码
mysqli_set_charset(utf8");
- 执行操作
$res=mysqli_query('连接数据库的信息', '你要执行的 sql 语句');
- 解析结果
$rows=mysqli_fetch_all($res,1)
- 断开数据库连接
mysqli_close($link)