前端工程师需要掌握的PHP+mysql知识总结

1 篇文章 0 订阅

PHP基础语法:

1、isset()、unset()、empty()区别?
答:是否存在 isset() 删除 unset() 是否为空empty()
2、单、双引号区别?
答:1⃣️对变量的解析不同:双引号可以解析变量,单引号对变量不解析原样输出; 2⃣️解析的速度不同:单引号不需要考虑变量的解析,速度比双引号快;

3、$_GET$_POST区别?
答:1⃣️大小:get为2K post默认8M 2⃣️方式:get通过http Post往往通过表单 3⃣️安全:get明文传输 Post较安全 4⃣️地址:get通过url Post通过请求头

延伸:$_REQUEST什么用途?
答:可接收两者的

4、echo、print、print_r的区别
答:1⃣️echo :是一个语言结构,输出一个或者多个字符串 2⃣️Print():是一个语言结构,不是一个函数,因此可以不使用括号括起来它的参数列表,输出的是一个字符串 3⃣️Print_r():是一个函数,打印变量的基本信息
5、Include、require、include_once、require_once的区别。
答:1⃣️对于错误的处理级别不同: include遇到错误时(引用的文件不存在),PHP只是报错,但程序会继续运行下去。 require遇到错误时,直接报错并停止运行程序。 2⃣️程序的处理不同 require相当于预处理,即它是在程序运行之前就被执行的。所以它是不可以用在控制语句中的,如if中。 include相当于函数,它是在程序运行时执行的。所以它可以用在控制语句中
6、strlen( s t r ) 、 m b s t r l e n ( str)、mb_strlen( str)mbstrlen(str)区别?
答:在strlen($str)计算时,对待一个UTF8的中文字符是3个长度;mb_strlen($str)选定内码为UTF8,则会将一个中文字符当作长度1来计算;mb_strlen并不是PHP核心函数,使用前需要确保在php.ini中加载了php_mbstring.dll
7、文件操作相关:
file_get_contents(文件名):获取文件内容 file_put_contents(文件名,写入的内容,FILE_APPEND):写入,参数FILE_APPEND为追加
8、常量的定义:define('PI',3.14)
9、常见魔术常量:

1⃣️__FILE__:当前运行的文件路径,包含该文件名。 2⃣️__DIR__:当前运行的文件路径,不包含该文件名

常用超全局变量:
$_GET:收集get方式提交的数据或者url中的数据 $_POST:收集提交 method="post" 的 HTML 表单后的表单数据 $_REQUEST:用于收集 HTML 表单提交的数据,get、post提交的均可获取 $_FILES:获取上传来的文件 $_SESSION:获取session数据 $_COOKIE:获取cookie数据 $GLOBALS:存储了所有全局变量,变量的名字就是数组的键 $_SERVER:保存关于报头、路径和脚本位置的信息
10、时间相关的操作:
time():当前时间的时间戳 date("Y-m-d H:i:s") 当前日期 strtotime("1970-1-2") 将时间转化为时间戳
11、session和cookie的区别
`答:- session可以借助cookie实现状态维持,也可以不依赖cookie(URL重写)

区别cookiesession
存储位置浏览器服务器
浏览器携带的数据量少(只携带session-id)
存储的数据类型只能是字符串任意类型
安全性较低较高
默认的有效路径当前路径及其子路径整站有效
数据的传输量有限制4K,不能超过20个无限制

12、cookie与session相关函数的使用:
设置cookie:setcookie('a',1,时间)
获取cookie:$_COOKIE['a']
设置session:
session_start(); $_SESSION["名称"] = 值;

13、数组相关:
创建:数组的创建 array()或者 []
遍历:foreach($arr as $k=>$v){}

Mysql相关

1、数据的增删改查需要掌握,即:insert,delete,update,select语句
例子:

查: select * from users where age>18 /and name='aa'

增: insert into users(name,age) values('aa',18)

改: update users set age=19 where id=1

删: delete from users where id=2

2、常见的函数:
count()、max()、min()、avg()

例子:

count(*) 统计个数
select count(*) from users

max/min 最大最小
select max(age) from users

avg()平均值
select avg(age) from users

3、关于排序
升序/降序:order by id asc/desc

4、分页:
limit 5,10 从索引5开始,取10条

$page:代表当前页
$pageSize:每页显示的数量
这种分页方式常用:

limit ($page-1)*$pageSize,$pageSize

5、复杂点的SQL(能理解更好,非重点,若不能理解需要记住关键词)
内联接:inner join
左联接:left join(以左表为准 没有默认为空)
右联接:right join(以右表为准 没有默认为空)
例子:

select * from a,b where a.id=b.id

select * from a inner join b on a.id=b.id

select * from a left join b on a.id=b.id

select * from a right join b on a.id=b.id

Mysql与PHP的相关操作

!需要掌握
1、连接数据库
mysqli_connect("localhost","root","root","mybase")

2、设置编码
mysqli_set_charset($conn,"utf8")

3.组件sql语句
$sql = ''

4.执行语句得到结果集
$result = mysqli_query($conn,$sql)

5.循环结果集拿出每一条数据存到数组

while($arr = mysqli_fetch_array($result,MYSQL_ASSOC)){ $res[] = $arr; } print_r($res)

6.关闭数据库连接
mysqli_close($conn);

7、解析结果集的三种方式:

mysql_fetch_row():返回索引数组
mysql_fetch_assoc():返回关联数组。
mysql_fetch_array():返回混合数组。

!!!Ajax相关【必须会】

一、原生JS中的Ajax:

1、使用ajax发送数据的步骤
第一步:创建异步对象
var xhr = new XMLHttpRequest();
第二步:设置 请求行 open(请求方式,请求url):
// get请求如果有参数就需要在url后面拼接参数,
// post如果有参数,就在请求体中传递 xhr.open("get","validate.php?username="+name)

xhr.open("post","validate.php");
第三步:设置请求(GET方式忽略此步骤)头:setRequestHeader()
// 1.get不需要设置
// 2.post需要设置请求头:Content-Type:application/x-www-form-urlencoded
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
第四步:设置请求体 send()
// 1.get的参数在url拼接了,所以不需要在这个函数中设置
// 2.post的参数在这个函数中设置(如果有参数)
xhr.send(null) xhr.send("username="+name);
第五步:让异步对象接收服务器的响应数据
// 一个成功的响应有两个条件:1.服务器成功响应了 2.异步对象的响应状态为4(数据解析完毕可以使用了)
xhr.onreadystatechange = function(){ if(xhr.status == 200 && xhr.readyState == 4){ console.log(xhr.responseText);}

ajax-get方式请求案例:

var xhr = new XMLHttpRequest();
xhr.open("get","validate.php?username="+name);
xhr.send(null);
xhr.onreadystatechange = function(){

if(xhr.status == 200 && xhr.readyState == 4){               console.log(xhr.responseText);                   document.querySelector(".showmsg").innerHTML = xhr.responseText;;
                }
            }

ajax-post方式请求案例:

var xhr = new XMLHttpRequest();
xhr.open("post","validate.php");
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xhr.send("username="+name);
xhr.onreadystatechange = function(){
// 判断服务器是否响应,判断异步对象的响应状态
if(xhr.status == 200 && xhr.readyState == 4){
                    document.querySelector(".showmsg").innerHTML = xhr.responseText;
                }
            }
二、Jquery中的Ajax
$.ajax({
    type:"get",// get或者post
    url:"abc.php",// 请求的url地址
    data:{},//请求的参数
    dataType:"json",//json写了jq会帮我们转换成数组或者对象 他已经用JSON.parse弄好了 
    timeout:3000,//3秒后提示错误
    beforeSend:function(){ 
        // 发送之前就会进入这个函数
        // return false 这个ajax就停止了不会发  如果没有return false 就会继续
    },
    success:function(data){ // 成功拿到结果放到这个函数  data就是拿到的结果

    },
    error:function(){//失败的函数

    },
    complete:function(){//不管成功还是失败 都会进这个函数

    }
})
// 常用
$.ajax({
    type:"get",
    url:"",
    data:{},
    dataType:"json",
    success:function(data){

    }
})

$.ajax() 都可以发

$.post(url,data,success,datatype):本质上只能发送post请求

$.get(url,data,success,datatype):本质上只能发送get请求

三、解决跨域问题

1、什么是跨域?
答:协议、域名、端口只要任何一个不一样 就是跨域。
2、跨域的情况下使用ajax请求会报什么错?
答:No ‘Access-Control-Allow-Origin’ header
3、如何解决跨域问题?
答:1⃣️、在服务器设置header允许跨域
header(“Access-Control-Allow-Origin:*”);//允许所有人跨域访问
2⃣️、使用jsonp,jsonp只能发get请求
4、什么是jsonp?
答:1⃣️前端:
1.创建script 的src 发送请求到后台:把函数的名字传过去

2⃣️. 提前把对应的函数写好
后台:
1)获取要的数据
2)把前端传来的函数名拼接成 函数名(数据) 返回即可,比如 test(数据)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西瓜皮儿的皮儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值