php入门介绍以及数据库操作

本文介绍了PHP的基础知识,包括前后端交互、服务器理解、PHP语法、JSON转换以及数据库操作。详细阐述了PHP中如何定义变量、输出数据、设置cookie,并通过实例展示了数据库的增删改查操作。此外,还涵盖了登录注册的实现方法,强调了安全性问题。
摘要由CSDN通过智能技术生成

一、前后端认知

  • 前端
    ==把后端给的数据展示在页面上(列表页面)
    ==把前端的数据传递给后端,让后端存储起来(注册)

  • 后端
    ==当前端需要数据时,后端从数据库里拿到数据给前端
    ==把前段传递的数据存储到数据库里

  • 数据库
    ==专门让“后端”进行数据的增删改查

例如:用户在前端注册账号

  • 前端
    ==通过在页面上绑定事件的方式获取用户填写的注册信息
    ==当用户点击注册的时候把信息传递给后端

  • 后端
    ==接收前端传递过来的注册信息
    ==把信息存储在数据库里面
    ==把存储成功或者失败的结果发送给前端

  • 前端
    ==接收后端发回来的反馈信息
    ==把反馈信息告诉用于注册成功还是失败

整个流程:前端—>后端—>数据库—>后端—>前端

注意:前端不能直接操作数据库,前端要想操作数据库,要把信息告诉给后端,由后端来操作数据库,再将操作结果返回给前端。

二、了解服务器

1、什么是服务器
通俗讲服务器就是网络另一端的一台电脑,它运行了特殊的软件和特殊的环境。

2、服务器的作用
当电脑上运行了服务器环境,这台电脑上就会有一个文件夹对外开放了,这个文件夹叫做服务器空间,其他用户可以通过网络找到这台电脑,并能访问服务器空间里的文件(只读权限)。

3、服务器环境
后端代码需要在服务器环境下运行,浏览器不支持后端代码的运行

  • 服务器
    == apache —>php
    ==tomcat —>java
    ==…
  • 后端语言
    ==PHP
    ==java
    ==…
  • 数据库
    ==mysql
    ==mongodb
    ==…

4、服务器集成环境

== WAMP:windows+apache+mysql+php
== MAMP:Mac OS + apache+mysql+php
== LAMP:Linux + apache+mysql+php

5、phpStudy

phpStydy是WAMP集成环境的一种,适合window系统

  • 软件对外开放的文件夹(服务器空间)
    安装目录里面的WWW文件夹就是apache服务器对外开放的文件夹

  • 如何访问服务器文件
    == 通过域名找到这台电脑
    – 因为服务器安装在我们自己的电脑上
    – 我们只要根据ip地址找到我们自己的电脑
    – localhost域名和127.0.0.1 ip表示的就是自己电脑本机
    – 只要在浏览器输入 localhost或者127.0.0.1
    – 就是访问自己电脑上的服务器
    – 在加上端口号,就是访问自己电脑上的服务器软件(服务器空间)
    – 如果你没有修改端口号,就是80,就可以不写端口号,浏览器会自动添加
    – 如果你修改了端口号,比如改成了8090,你就要写localhost:8090或者127.0.0.1:8090
    – 访问的就是你的这个软件对外访问的文件夹
    – 这个文件夹如果没有修改过就是www目录
    – 如果修改过,就是你修改的那个目录

三、了解php

1、php代码书写

  • php是后端语言,需要在apache服务器上运行
  • 将php文件放到WWW目录里,在浏览器上输入域名或者IP查看
  • 每一个php文件,都要写php标签里,以<?php开头,?>结尾,所有php代码写在这个标签里面
  • php文件不允许用中文命名
  • php结尾必须加分号,如果不添加会报错

2、php的输出语法

  • 因为php是一个后端语言,和前端语言不一样
    == 前端的输出语句console.log或者alert,就直接反应在浏览器上了
    == 后端的语法是谁找后端要的就给谁
    == 当浏览器找php要的时候,那么php的输出语法就把输出内容给浏览器
    == 当js找php要的时候,那么php的输出语法就把输出内容给js

  • php里面的三种常用的输出语法:

    echo 输出的内容;
    print_r(输出的内容);
    var_dump(输出的内容);

  • 三种输出语法的详细区别:

    echo
    == 关键字,不需要()
    == 只能输出基本数据类型,复杂数据类型会报错
    == 遇到布尔值,true会输出1,false会输出空字符串

    print_r
    == 可以输出所有数据类型
    == 遇到布尔值,true会输出1,false会输出空字符串

    var_dump
    == 可以输出所有数据类型
    == 遇到布尔值会正常输出,true输出true,false输出false
    == 并且会带有数据类型和数据的信息

3、php变量

  • 在php中,定义变量没有关键字,以$开头就表示一个变量
  • 例如 n u m = 100 ; 变 量 名 就 叫 做 num=100; 变量名就叫做 num=100;num,$不是定义变量的关键字,是变量的一部分。

4、php中字符串的定义

  • 在js中字符串的定义,单引号和双引号这两种方式没有区别
  • php中字符串的定义也是单引号和双引号两种方式,但有区别
    ==单引号表示普通的字符串,叫做纯字符串
    ==双引号是特殊的字符串(拼接字符串),可以在字符串里解析变量;如果以$开头,我们就认为这个后续的单词为变量。
  • php中字符串的拼接
    ==js中使用运算符+进行拼接
    ==在php中,+只能做数学运算,.用来做字符串的拼接,语法:字符串1.字符串2
    ==例如:‘hellow’.‘world’

5、php中的数组数据类型

  • 索引型数组
    ==相当于js中的数组
    ==语法:$arr=array(数据1,数据2…)
    ==按照索引的下标有序排列
    ==获取数组中的元素:数组名称[对应的索引值]
    ==如何获取数组的长度?API:sizeof 和 count

  • 关联型数组
    ==相当于js中的对象
    ==语法:$arr=array(key1=>value1,key2=>value2…)
    ==注意:不论是key或者value,只要是字符串类型都需要引号包裹,如果没有引号,会被当做变量来使用
    ==获取关联型数组中的值:数组名称[‘key’]

6、php中乱码问题

  • 问题来源:
    ==html文件中,charset=utf-8,告诉了浏览器解析的方式
    ==php文件只进行了输出,没有告诉浏览器用什么字符集来解析文本
  • 解决方式:
    ==header(‘content-type:text/html;charset=utf-8;’);
    ==告诉浏览器使用utf-8字符集解析文本

7、在php文件中导入其他的php文件

  • 关键字语法: include “你要导入的文件路径”;
  • API语法:require(“你要导入的文件路径”);

四、php中JSON格式转化

1、为什么要进行JSON格式的转化

  • JSON格式可以在多种语言之间传递数据,所有语言转换成JSON格式都是一样的

2、php中JSON格式转换的方法

  • 把php数据转换成JSON数据
    ==语法:json_encode(要转换的php格式的数据)
    ==返回值:转换好的json格式的数据
  • 把JSON格式的数据转换成php格式的数据
    ==语法:json_decode(要转换的json格式的数据)
    ==返回值:转换好的php格式的数据

五、数据库操作

1、了解数据库

  • 整个数据库就是一个存储数据的“大仓库”
  • 在整个大仓库中有一个一个的“小仓库”,我们叫做database
  • 每个小仓库中还有若干的“表格”
  • 每个表都会有字段,相当于表头
  • 每个表都会有行,相当于表体
  • 整个表结构就类似于excel表格

2、数据库操作

  • 建立和数据库的连接
  • 创建一个小仓库
  • 创建一个表格
  • 添加字段
  • 添加数据

六、php语言操作数据库

1、php操作数据库的两种语法

  • mysql语法—>php5
  • mysqli语法—>php7

2、php操作数据库的步骤

1.建立和数据库的连接

  • mysqli_connect(‘ip地址’,‘数据库用户名’,‘数据库密码’,‘要操作哪一个数据库’)
    ==本机ip地址:127.0.0.1或者localhost
    ==原始的数据库用户名:root
    ==原始的数据库密码:root
    ==返回值:返回一个通行秘钥,在后期操作数据库时用

2.操作数据库

  • mysqli_query(第一步返回的通行秘钥,‘要执行的sql语句’)
    ==数据的增删改查都用这个方法,只不过执行的sql语句不同
    ==返回值就是一个执行结果
    ==一般查找的的返回结果需要解析

3.解析结果

  • mysqli_fetch_assoc(要解析的查询结果)
    ==不是所有的结果都需要解析
    ==只有查询的结果需要解析,因为查询的结果看不懂
    ==如果是增删改结果不需要解析
    ==返回值:一个解析好的结果,是一个关联型数组
    ==注意:这个方法只能解析一条数据
  • mysqli_fetch_all(要解析的查询结果,使用哪种方法解析)
    ==解析全部结果
    ==解析方法:MYSQLI_ASSOC
    ==返回值:是一个二维数组,里面有所有的数据

4.断开连接

  • mysqli_close(通行秘钥)
  • 数据库连接成功之后,一定要记得在最后关闭数据库连接,否则你的服务器会非常脆弱

七、常用的sql语句

1、什么是sql语句

  • 专门用来操作数据库的语句,语法规范
  • mysql数据库只能依靠sql语句来操作
  • 分为增删改查的sql语句

2、操作数据库的时候,写入对应的操作语句

  • 语法:mysqli_query(连接信息,sql语句)

3、解析结果

  • 增加的sql语句,返回结果是:true表示增加成功,false表示增加失败
  • 删除的sql语句,返回结果是:true表示删除成功,false表示删除失败
  • 修改的sql语句,返回结果是:true表示修改成功,false表示修改失败
  • 查询的sql语句,返回结果:
    ==一个需要解析的查询信息
    ==查询失败返回false

4、sql语句的语法

  • 语法规范:
    ==sql语句的关键字大写
    ==表名和字段名尽可能使用反引号包裹
  • 语法规则:
    ==文本内容必须使用引号包裹,表示是一个字符串

5、插入的的sql语句

使用INSERT关键字

语法1:插入一行的所有数据
INSERT INTO `表名` VALUES (数据1,数据2....)
+ 按照数据库里面字段的顺序插入
+ id可以不写具体的,直接写null,会自动增长
+ 例如	INSERT INTO `userinfo` VALUES (null,"张三","123456");
语法2:插入一行的部分数据
INSERT INTO `表名` (字段1,字段2...) VALUES (数据1,数据2...)
+ 可以按照书写字段来添加
+ 只能添加某些字段的内容,剩下的后面在修改
语法3:插入多行数据
INSERT INTO `表名` VALUES (null,数据1,数据2...),(null,数据1,数据2...)
+ 多行数据之间用逗号隔开

当返回结果是false时,表示sql语句有错误

6、删除的sql语句

  • 使用DELETE关键字
语法:
DELETE FROM `表名` WHERE 条件
要从哪个表删除满足条件的数据
注意:必须写条件,否则会删除整张表的数据
例如:删除userinfo表密码是123456的数据行的sql语句
$sql="DELETE FROM `userinfo` WHERE `password`='123456'";

7、修改的sql语句

  • 使用UPDATE关键字
语法:
UPDATE `表名` SET `字段`=WHERE 条件
UODATR `表名` SET `字段1`=1,`字段2`=2 WHERE 条件
例如:
修改userinfo表,把用户名是小明的人密码设置成666666
$sql="UPDATE `userinfo` SET `password`='666666' WHERE `username`='小明'";

8、查询的sql语句

  • 使用SELECT关键字
语法:
1.查询表里所有的数据
SELECT * FROM `表名`

2.根据条件查询数据
SELECT * FROM `表名` WHERE 条件

3.根据两个条件查询数据,这两个条件都满足
SELECT * FROM `表名` WHERE 条件1 AND 条件2

4.根据两个条件查询数据,两个条件至少满足一个
SELECT * FROM `表名` WHERE 条件1 OR 条件2

5.查询数据库里指定字段包含某一个关键字的数据
SELECT * FROM `表名` WHERE `字段` LIKE `%关键字%`

6.查询数据按照ID降序排列
SELECT * FROM `表名` order by `id` desc

7.$start开始查询$count条数据
SELECT * FROM `表名` limit $start,$count

八、登录注册

1、需求:该php文件可以实现注册功能
有用户名和密码,就可以把用户名和密码插入数据库
先查询数据是否有该用户
如果没有,则进行插入操作,在页面输出一个{“code”:1}表示注册成功
如果有,则不进行插入操作,在页面输出一个{“code”:0}表示注册失败

$username="小明";
$password="666666";
$link=mysqli_connect('127.0.0.1','root','root','user');
$sql="SELECT * FROM `userinfo` WHERE `username`='$username'";
$res=mysqli_query($link,$sql);
$arr=mysqli_fetch_assoc($res);
if($arr){
    print_r('{"code":0}');
}else{
    $sql1="INSERT INTO `userinfo` VALUES (null,'$username','$password')";
    $res1=mysqli_query($link,$sql1);
    if($res1){
        print_r('{"code":1}');
    }else{
        print_r('{"code":0}');
    }
}

2、 需求:
给定用户名和密码
查询数据库里是否用一条数据是这个用户名和密码
如果有就是登陆成功,在页面输出一个{“code”:1}表示登陆成功
如果没有就是登陆失败,在页面输出一个{“code”:0}表示登陆失败

$username="小明";
$password="666666";

$link=mysqli_connect('127.0.0.1','root','root','user');
$sql="SELECT * FROM `userinfo` WHERE `username`='$username' AND `passward`='$password'";
$res=mysqli_query($link,$sql);
$arr=mysqli_fetch_assoc($res);
if($arr){
    print_r('{"code":1}');
}else{
    print_r('{"code":0}');
}

九、php设置cookie

所有后端语言设置cookie的原理都是操作响应头;

因为后端设置cookie形式是间接操作为了前端区分我们通常称之为种cookie;

1、设置cookie

  • php中setcookie方法可以设置cookie
  • 语法:setcookie(key,value,time)
  • key:这条cookie的键名
  • value:这条cookie的值
  • time:cookie的过期事件,如果不写默认是会话时效
    ==time()+15 表示15秒以后过期
    ==time()+60 表示60秒以后过期
<?php
	setcookie('a',100);
	setcookie('b',200,time()+60*60);
?>

2、后端获取cookie

$_COOKIE[‘username’]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值