前言
php基础在上一篇文章中有讲过,那么这篇文章主要讲一讲sql。
sql 指结构化查询语言,使我们有能力访问数据库,那么后端访问数据库的原理就是在php变量中构建sql语言,使其在数据库中执行,就达到了我们访问数据库以及一系列操作的目的。
数据库的结构是库、表、字段、数据,字段可以理解为表头,库可以理解为很多张表的集合。
sql简单操作
sql语言的结尾都要加" ; "
- 查库:
show databases;
- 进库:
use 库名;
- 建库:
create database 库名;
- 删库:
drop database 库名;
- 查表:
show tables;
- 查看表的结构:
desc 表名;
- 建表:
create table 表名(字段名1 字段类型1,字段名2 字段类型2);
建表时要声明表内字段及其类型,类型内的大小最大为255
- 删表:
drop table 表名;
- 增加字段:
alter table 表名 add 字段名 字段类型;
- 删除字段:
alter table 表名 drop 字段名;
- 修改字段:
alter table 表名 change 字段1 字段2 字段类型;
将字段1修改为(字段2 字段类型)
数据的增删改查
-
插入:
insert into 表名 value(数据,数据);
有几个字段就写几个数据,如果不写一般为Null,而且顺序为字段顺序。字符串需要加' '
insert into 表名(字段2,字段1) value(数据2,数据1);
可以按你规定的字段顺序传数据
-
查询:
select*from 表名 where 条件;
后面的条件按需求填写
select 字段名 from 表名 where 条件;
-
修改:
update 表名 set 字段名1=新数据1,字段名2=新数据2 where 条件;
-
删除:
delete from 表名 where 字段名=数据;
查询数据
sql语句最常用的就是查询语句select 字段名 from 表名;
高级查询
- 排序结果:
order by 2;
以第二个字段进行排序
order by 字段名;
[desc]倒序 [asc]顺序
- 分页:
limit n,m;
从n+1行开始取m行
主要作用在SQL注入!!
模糊查询
(用于SQL注入)
like '%a%';
查询包含 a 的所有数据like 'a%';
查询以 a 开头的所有数据like '%a';
查询以 a 结尾的所有数据
用PHP操纵数据库
使用PHP操纵数据库,实则是使用 MySQLi 扩展库内的函数,mysqli 扩展允许用户访问由 MySQL 4.1 或更高版本所提供的功能。
建立联系:
mysqli_connect(连接地址,账号,密码,库名);
库名为可选参数
<?php
$conn = mysqli_connect('localhost' , 'root' , 'root' , '库名');
//此时,$conn成为了一个“连接”,有的地方称它为“管道”
?>
mysqli_select_db(连接,库名);
如果建立连接时没有指定库,在这里可以进入指定库
<?php
$conn = ('localhost' , 'root' , 'root');//先连接到数据库
mysqli_select_db($conn , '库名');//再连接到数据库内的指定库
?>
mysqli_query(连接,执行sql语句);
<?php
$sql = 'insert into 表名 value(数据,数据)';//构建sql语句
mysqli_query($conn , $sql);//执行语句
?>
mysqli_fetch_array();
将传参转化为数组
<?php
$sql = "select ";
$result = mysqli_query($conn , $sql);//将执行后的结果传递给$result
?>
登录页面
登录:
<?php
$username = $_POST['username'];//接收用户名传参
$password = $_POST['passname'];//接收密码传参
$conn = ('localhost','root','root','login');//建立与login库的连接
$sql = "select*from login where username='$username' and password='$password'";
//构建sql语句,查询对应的数据并返回该数据
$result = mysqli_query($conn,$sql);//执行sql语句,并将结果返回给$result
$a = mysqli_fetch_array($result);//将结果转化为数组形式
if($a['username']==$username && $a['password']==$password) {
echo '登录成功!';
} else {
echo '登陆失败!';
}
?>
这就是完整的登录PHP,注意:
- 相应的HTML文件的传参与之相对应——POST
- 相应的HTML文件的用户名与密码的"name"与之相对应
- 提前在数据库中建立login库,在库内建立login表
- 注册页面与之相似:sql语句构建为插入语句;不需要返回值$result;判断是否为空值
- 当然再严谨的登录页面也会存在漏洞😀所以请关注网络安全