二十三、PHP && MYSQL

一、WEB相关概念

服务器:没有显示器的主机,配置比普通电脑高、24小时开机

web服务器:是个软件,开启之后你就可以通过浏览器访问磁盘目录下的文件

ip地址:是电脑的唯一编号不重复,每个人都有一个特殊的127.0.0.1 localhost

域名:因为ip不方便记忆

DNS服务器:保存域名和ip对应关系的文件

端口号:为了确定每次访问交给计算机哪个软件处理

web访问流程

普通用户:打开浏览器 输入网址  直接看到内容

专业开发:打开浏览器 输入网址 -> 交给DNS服务器(存放ip和域名关系)-> 找到ip加80访问这台电脑

                  html、css、js就直接返回   ->  浏览器解析输出

                  php   ->  交给php软件   php软件返回html  ->  交给浏览器输出

二、PHP相关概念

JS:基于客户端的语言

PHP概念:基于服务端的语言

PHP/JAVA作用:写接口、开发动态网站

PHP优点:开发速度快,成本低

PHP运行环境:WAMP、LAMP

WAMP架构
在这里插入图片描述
LAMP 架构
在这里插入图片描述

三、搭建PHP运行环境

步骤1:搭建PHP运行环境

双击PHPstudy这个软件
直接选择目录安装就行(路径不能有中文或空格)

步骤2:创建项目(一台电脑 搭建好环境,可以创建n个项目)

a. 搞一个网址
	1. 打开PHPstudy选择其他选项菜单->最终打开host (规则  先写IP地址统一127.0.0.1  在写网址)
	2. 检测是否成  在DOS窗口(ctrl+r 输入cmd 输入命令  ping 网址  如果看到127.0.0.1 
	
b. 项目目录
	1. 打开PHPstudy选择其他选项菜单 -> 打开配置文件 -> vhosts-ini文件 输入下述内容(固定)
	<VirtualHost _default_:80>
      ServerName 网址(改1  ok)
      DocumentRoot "项目存放目录(改2 待创建)"
      <Directory "项目存放目录(改3 待创建)">
        Options +Indexes +FollowSymLinks +ExecCGI
        AllowOverride All
        Order allow,deny
        Allow from all
        Require all granted
      </Directory>
    </VirtualHost>
    2. 创建项目存放目录
    3. 重启服务

四、PHP语法快速入门

创建php文件:文件名.php

创建php变量:$变量名 = 变量值;

php判断:同js

php循环:同js

 while、for、dowhile   同js

js :            数组.forEach((item, index) => {})

php :          foreach($数组 as $index => $item) {}

php函数:同js 唯一的区别 变量名加$

打印:echo $变量名,复杂类型 print_r($变量名 )

<?php

// 定义变量
$uname = "神龙教主";
echo $uname;
echo "<hr />";

// 定义数组
$arr = ["a", "b", "c"];

echo $arr[0];
echo "<hr />";

// 遍历输出
foreach($arr  as $index => $item) {
	echo $index;
	echo $item;
	echo "<br />";
}

// 定义函数调用
function fn() {
	echo "老铁双击666,下次再迟到你就别来了";
}

fn();


// 定义变量成绩,判断成绩是否优秀 > 90
echo "<hr />";
$score = 99;
if ($score > 90) {
	echo "优秀";
} else {
	echo "有瑕疵";
}

?>

五、MySQL数据库

简介
数据库是什么:就是一个软件

数据库能干吗:永久存放网站数据

安装
不需要安装 因为PHPstudy帮我们装好了

使用 - 软件navicat
navicat是一个mysql数据库可视化管理软件

作用:实现mysql数据库数据增删改查

安装:绿色版 解压双击打开直接用

密码:root、我的admin888

创建仓库-数据库
在这里插入图片描述
在这里插入图片描述
增删改查

使用 - 命令

增: insert into 表名 (列名,…,列名) values (数据,…,数据 )

删: delete from 表名 where id=1 或者 uname = "张珊"

改: update 表名 set 列名=值,…,列名=值 where 条件

查: select * from 表名

分页:select * from 表名 order by id asc/desc limit 起始位置, 要查询条数

起始位置 = (当前页 -1 ) * 每页显示条数

-- 分页:select * from 表名 order by id asc/desc  limit 起始位置, 要查询条数
-- 
-- 起始位置 =  (当前页 -1 ) * 每页显示条数
-- 

-- 每页2条 查询第一页数据

-- 12  34  56  78


-- select * from users order by id asc limit 0,2  
-- select * from users order by id asc limit 2,2  
-- select * from users order by id asc limit 4,2  

六、使用PHP操作MySQL

  • 连接MySQL
  $pdo = new PDO('mysql:dbname=数据库名', '账号', '密码');
$pdoStatement = $pdo->query(SQL语句);

// 返回一维数组
$data = $pdoStatement->fetch(PDO::FETCH_ASSOC);

// 返回二维数组
$datas = $pdoStatement->fetchAll(PDO::FETCH_ASSOC);
  • 增删改
$rs = $pdo->exec(SQL语句); // 返回受影响的函数  0-假,数字-真

注:SQL语句就是写数据库增删改查的命令

练习

需求1:用php查找数据库中数据

先用navicat创建一张表
在这里插入图片描述

<?php
header("content-type:text/html;charset=utf-8");
 $pdo = new PDO('mysql:dbname=stus', 'root', 'root');  //连接数据库
 $pdoStatement = $pdo->query("select * from students"); //操作数据库
 $data = $pdoStatement->fetch(PDO::FETCH_ASSOC);     返回一维数组
 print_r($data);      //打印出数据库查找出的数据
 echo "</br>";
 echo $data['id'];   //按表字段打印数据
echo $data['username'];
echo $data['pwd'];
?>

查询结果如下
在这里插入图片描述

<?php
header("content-type:text/html;charset=utf-8");
 $pdo = new PDO('mysql:dbname=stus', 'root', 'root');  //连接数据库
 $pdoStatement = $pdo->query("select * from students"); //操作数据库
$datas = $pdoStatement->fetchAll(PDO::FETCH_ASSOC);//返回二维数组

echo "<pre>";   //让数据格式好看点,不会在一行显示
// print_r($datas);

foreach($datas as $index => $key) {   //循环遍历
	print_r($key);                  //打印出数据
}
?>

返回二维数组显示如下
在这里插入图片描述
需求2:往数据库插入数据

<?php
header("content-type:text/html;charset=utf-8");
$pdo = new PDO('mysql:dbname=stus', 'root', 'root');//连接数据库

// 列表 切记不能加引号
// 值 必须加引号
$rs = $pdo->exec("insert into students (username,pwd,gender) values ('郝书涛', '123456','男')"); //运用sql语句往数据库插入数据
// 返回受影响的函数  0-假,数字-真
// 
echo $rs;//打印出响应数据
?>

结果如下
在这里插入图片描述

php写接口

概念
接口是什么:就是一个文件、可以是js/php/json等等 只要返回json数据 (相当于咱们前端js里面对象 大括号

接口能干吗:1数据角度-让你网站的数据动态、2功能角度 - 手机短信、笑话接口等等

接口去哪下:1-百度第三方接口网站,2-自己写

后端响应状态接口

<?php
echo json_encode([
    "meta" => [ "state" => 200/201/301/302/400/401/403/404/500,
       "msg" => 提示信息
    ],
    "data" => 查询放数据库数据/增删改直接写null
]);
?>

查询接口

<?php
 $pdo = new PDO('mysql:dbname=数据库名', '连接数据库的用户名', '密码');
$pdoStatement = $pdo->query("select * from 表名");
$datas = $pdoStatement->fetchAll(PDO::FETCH_ASSOC);  //返回二维数组

echo json_encode([
    "meta" => [
        "state" => 200,
        "msg" => "操作成功"
    ],
    "data" => $datas 
]);
?>

删除接口

<?php
$pdo = new PDO('mysql:dbname=web02', 'root', 'admin888');
$rs = $pdo->exec("delete from users where id = 1"); 

if ($rs) {
	echo json_encode([
	    "meta" => [
	        "state" => 200,
	        "msg" => "删除成功"
	    ],
	    "data" => null
	]);
} else {
	echo json_encode([
	    "meta" => [
	        "state" => 500,
	        "msg" => "删除失败"
	    ],
	    "data" => null
	]);
}

?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值