PHP与数据库基础-掌控安全福利课
1:了解PHP
PHP是什么?
PHP能干什么?开发网站
输出一个属于自己的第一个PHP程序。
<?php
echo 'Hello World';
?>
数据库简介及SQL语法
2:人人都会编程
起床上班:
打招呼 if 判断【需要预先设定】
<?php
$sex='男';
if($sex=='男'){
echo'帅哥';
}else{
echo"妹妹";
}
?>
变量 运算 控制
变量 比较运算 分支语句
3:变量教学-变量就是个盒子
计算机特点:运算飞快,忘的也飞快
变量就是个盒子储存东西的
4:运算符符号
加减乘除取余比较大于等于小于等于不等于
1+1=2
$Wang = 100000;
$Ma = 150000;
echo $Ma + $Wang
$A1 = 45;
$A = $A1*15;
echo $A
$Fang =19;
$Zheng =18;
if($Fang >15){
echo '方先生大于15岁';
}
else{echo '方先生不大于15岁';}
5:控制结构
顺序结构 分支语句 循环语句
穿衣服 穿鞋子 刷牙洗脸 去上班
$a = 1;
$a = 2;
分支语句 [选择]
$sex = '男生';
if($sex == '男生')
{echo 'Hello Boy';}
else
{echo 'Hello';}
循环语句
while() 不断的做某件事
比如说我们现在在喝水
<?php
$water = 1;
while($water<6){
echo '我喝了'.$water.'杯,服务员再给我杯水吧<br />';
$water = $water +1;
}
echo '谢谢,我喝了'.$water.'杯水,不渴了';
?>
6.你已经学会编程
打印1-100
打印1-100偶数 //偶数的定义 能被2整除
遇到7的倍数 打印字符A
遇到13的倍数 打印字符B
7.字符串的处理
1.字符串是什么 //字符串其实就是文本 代码
2.单双引号的区别
3.字符串处理函数
单引号与双引号区别
双引号会解析$后的内容
strstr() 字符串的匹配和寻找
str_replace() 替换
echo 'echo';
在安全中,很多时候黑客会输入一些恶意传参
8.数组
数组
实际上是一排柜子
存东西
号码牌 标识
号码牌 Key 键 [独一无二的不会重复]
key键 value值
9.制作一个网页
如何获取GET|POST传参
$_GET
$_POST
表单 HTML代码
GET传参 POST传参
什么是表单?
表单在网页中主要负责数据采集功能。
一个表单有三个基本组成部分:
表单标签:这里面包含了处理表单数据所用动态脚本的URL以及数据提交到服务器的方法。
表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等。
表单按钮:包括提交按钮、复位按钮和一般按钮;用于将数据传送到服务器上的动态脚本或者取消输入,还可以用表单按钮来控制其他定义了处理脚本的处理工作。
使用场景:
登录框
搜索框
留言框
上传框
……(各种框)
表单标签:
<form action= "URL" method="GET/POST" >
表单域:即表单组件,主要有
文本框、密码框、隐藏域、复选框、单选框、文件上传框
多行文本框(文本域)
下拉选择框
……
表单按钮:
提交按钮
复位按钮
一般按钮
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<form action="1.php" method="GET">
<input type="text" name="fenshu">
<input type="submit" value="提交">
</form>
</body>
</html>
<?php
header("Content-Type: text/html;charset=utf-8");
$fenshu=$_REQUEST['fenshu'];
if($fenshu>=60){
echo '及格';
}else{
echo '不及格';
}
?>
10.初识数据库
数据库是什么? // 数据 仓库
它的结构是怎么样的? //库 表 字段 记录
常见的数据库有哪些? //Mysql Access MSSQL Oracle
数据库他是靠SQL语句
X张表变成一个库
11.数据库结构改变
数据库结构改变
show databases 查看有什么库
show tables 查看有什么表
use 库名 [进入库]
desc 表名 查看表的结构
建立数据库:Create database 库名
删除数据库:Drop database 库名
建立表: create table 表名(字段名 字段类型,字段名2 字段类型)
删除数据表: Drop table 表名
添加表里面的字段:Alter table 表名 add 字段名 字段类型
删除表里面的字段 Alter table 表名 drop 字段名
修改表内字段名:alter table 表名 change 旧字段名 新字段名 新类型;
出现了不知道的东西,字段类型是什么?
就是字段的格式,例如 int 数字 [只能存储数字]
varchar 字符串 [能存储字符串] varchar(255) [能储存255个字符]
12.增删改查 对记录
插入数据(增):
insert into 表名 values (值,值)
insert into 表名(列名1,列名2) values(值1,值2)
查询语句:
select *from 表名 where 条件
select 字段名 from 表名 where 条件
修改数据:
update 表名 set 列名 = 新列值 where 列名 = 旧列值
update 表名 set 列名 = 新列值,列名2 = 新列值 where 列名 = 旧列值
删除数据
Delete from 表 where 列名=列值
13.运算符和结果处理
结果排序
order by 1 排序第一个字段
order by 字段名 排序写了字段名的这个字段
默认升序 [asc]
降序[desc]
分页
limit n,m
limit 从n开始,取m行数据
多行数据一起输出
group_concat()
模糊查询:
like %a% 查询包含a的所有值
like a% 查询a开头的所有值
like %a 查询a结尾的所有值
休眠函数
sleep(2) 服务器进入摸鱼模式,故意拖2秒返回数据
查询当前所在库
select database();
数学运算符号:
+ - * /
他和PHP中没有啥区别
逻辑运算符:
and [满足两个条件才可以] 既要这样,又要那样
or [满足一个条件就可以] 这个或那个都行
not [取反]
14.联合查询与子查询
联合查询和子查询
联合查询: union 将两个查询语句的结果一起输出 [重复的不输出]
union all 将两个查询语句的结果一起输出 [重复也输出]
需要满足条件,相同列数
子查询:
在原本的SQL语句中写小括号,优先执行一个查询语句
select*from ssg where password=(select uname from nf where id=1); => select *from ssg where password=10
15.PHP与数据库交互
1.这里需要使用mysqli扩展
2.mysqli_connect 连接数据库
3.mysqli_select_db() 选择库
4.mysqli_query() 执行sql语句
正常网站:
传参 -> PHP 处理 -> 去数据库存东西获取东西 -> 显示数据
这里有很核心的一步是PHP能够操作数据库,这里就需要用到PHP的mysqli扩展
这个扩展时操纵mysql数据库,自带的,你可以理解为他是一些函数,当你看到一个函数时mysqli_ 的适合一般都属于mysqli扩展。
Mysqli扩展的核心就是PHP去操作数据库
如何操作
建立连接:
mysqli_connect(链接地址,账号,密码,库名)
=> $conn=mysql_connect('localhost','root','root','fuli');
mysqli_select_db(连接,库名)
mysqli_select_db($conn,'fuli');
mysqli_query(连接,执行SQL语句)
$sql = insert into nf value(88,'PHP');
mysqli_query($conn,$sql);
16.完成登陆页面功能
1.提取数据库内容
2.进行判断
3.完成页面
上节课讲了操作数据库语句,但是很多适合我们需要取出数据库里的内容,如何输出?
$result = mysqli_query($conn,$sql);
mysqli_fetch_array($result);
将数据库执行的结果转化为数组
尝试整合之前所学的,做一个登陆页面