PHP
软件架构:
c/s- Client客户端/Server服务器端
举例:
QQ
大型网游
优点:用户体验感好
运行稳定
对带宽要求低
缺点
占硬盘空间 1TB
更新过于复杂 - 服务器端要更新,客户端也要更新
B/S-Browser浏览器/Server服务器端
举例:
网页版QQ
网页游戏
优点:
几乎不占硬盘
更新简单-服务器端更新
缺点:
体验感相对较差(越来越好-云平台的出现)
对带宽要求高一些
XAMPP软件 - 中间安装流程
安装:双击->一路点下去
*Apache - 用于运行PHP的环境/服务
出现错误:
1、直接弹出一个框告诉:你的电脑缺少api-ms-win-crt-conio-l1-1-0.dll文件
解决:打开c:\windows\SysWOW64,把我提供文件复制过去就可以
2、错误日志:error:apache shutdown unexpectedly - apache端口号被占用了
修改端口号:
打开:D:\xampp\apache\conf\httpd.conf-记事本/开发工具打开
搜索:ctrl+F :listen 80
随意的换为:4位数
建议:默认端口号可用就不要去修改他
3、切记安装时一定要安装在盘符下面
如果你的apache 成功开启:那么恭喜你,你的服务器已经开启了
*如何访问apache 服务器-就访问服务器
127.0.0.1:端口号
localhost:端口号
*搭建本地web应用:
打开:D:\XAMPP\HTDOCS
把里面的文件全部删除
把你的项目放进去 - 你的项目就已经放到服务器端
*别人可以来访问了
打开cmd输入:ipconfig
把你的ipv4地址给对方
本地/局域网服务器- 一旦出了这间教室就不用了
小娱乐:
1、设置网页图标:D:\xammp\htdocs放入任意图片:名字必须为:favicon.ico
2、设置顶级域名:C:\Windows\System32\drivers\etc\hosts,打开后最底下加一句- 只有自己可用127.0.0.1 www.xxx.com
MySQL -数据库产品
关系型数据库 -以表格为主
Oracle -Oracle (甲骨文)
主要应用于【企业级】开发市场
MySQL -Oracle (甲骨文)
主要应用于【互联网】开放市场
SQL server - 微软
非关系型数据库- 没有固定的格式
是一种运动 -反关系型数据
主流产品 -mongoDB -以JSON格式为主
MySQL产品
最开始由MySQL AB 公司推出
爆火原因 -免费 好用 开源
网站架构 - LAMP (Linux系统 + Apache+MySQL+PHP)- 这四个全是免费的 (对于中小型公司简直完美)
企业及架构- Linux(AIX)系统+JavaEE+oracle+weblogic -光是搭建一个构架百万以上
MySQL AB后期被sun公司收购
sun公司 -Java
sun后期被Oracle公司收购了
三个明星产品:
oracle
mysql -社区版(免费)和商业版 (收费)
java
原因之一:mysql的作者发现mysql在oracle不并受到关注、重视,作者自己独立出来以自己的女儿名字做了一个 mariaDB,原汁原味的MySQL
MySQL基本内容
MySQL - 默认端口号3306,不去修改
访问:
1、图形化界面 - 傻瓜式
要求:必须同时打开apache和mysql
访问:
127.0.0.1:端口号/phpmyadmin
localhost:端口号/phpmyadmin
有可能进不来图形化界面
*****命令行方式:
如何进入数据库:
1、打开cmd
2、输出:cd d:/xampp/mysql/bin
3、登陆:mysql -uroot -p -千万不能加分号,然后回车,密码继续回车
主要目的:学习SQL语句
1、数据库:
1、创建数据库 - CREATE DATABASE IF NOT EXISTS 数据库名称 CHARACTER SET utf8;
2、查看数据库 -SHOW DATABASES;
3、切换数据库 -USE 数据库名称;
4、删除数据库 -DROP DATABASE IF EXISTS 数据库名称;
2、数据表:
1、创建数据表:
数据类型:
数值:
INT -整数
Float/Double -浮点数
DECIMAL -精确值(金钱)
字符串:
CHAR - 长度固定的字符串
VARCHAR -长度可变的字符串
日期:
DATE - YYYY/MM/DD
DATETIME -YYYY/MM/DD hh:mm:ss
TIMESTAMP -时间戳(标识:唯一不可重复的)
语法:
CREATE TABLE user(
id INT PRIMARY KEY AUTO_TNCREMENT,
name VARCHAR(30),
pwd VARCHAR(6),
email VARCHAR(30)
);
PRIMARY KEY: 主键约束 -不会出现重复的
AUTO_INCREMENT:主键自增 -每次会+1
3、*****数据:
增:INSERT INTO 表名 VALUES(字段值.....);
举例:INSERT INTO user VALUSE(0,"名字","666666","名字@qq.com");
删:DELETE FROM 表名 SET 字段名=字段值,... WHERE id=几;
举例:DELETE FROM 表名 WHERE id=3;
改:UPDATE 表名 SET 字段名=字段值,... WHERE id=几;
举例:UPDATE 表名 SET name ="tom",email="tom@qq.com"WHERE id=4;
查:3种
SELECT *FROM表名;//当前所有的数据
SELECT *FROM表名 WHERE id=几;//只会拿到id=几那一条数据
SELECT name,pwd FROM 表名;//当前表中所有的name和pwd
SELECT name,pwd FROM 表名 WHERE id=几;//只会拿到id=几那一条的name和pwd
问题:为什么要全大写SQL语句- 仅仅只是一个建议
因为这些话以后绝对不可能用cmd来写,SQL语句会写在服务器端文件中
++++++++++++++++++++++++++++++++++++++++++++++++++++++
PHP语言
LAMP -Linux+Apache+MySQL+PHP
PHP文件的扩展名.php
*如何运行php页面:
将你创建好的php页面放到服务器端上去运行
xampp目录下的htdocs文件夹中,并且要启动apache(php的运行环境)
打开浏览器输入127.0.0.1的方式去访问的文件
PHP允许边写前端代码(HTML/CSS/JS)和PHP代码 -意味着以后你会发现某个网页不是.html不必惊讶
PHP与JS的区别:
PHP-运行在服务器端的脚本语言 -做和数据库的交互
JS -运行在客户端浏览器的脚本语言 -做特效
语法有【略微】的区别(万变不离其宗)
做的事不一样
PHP基础语法学习:
1、输出方式:
echo 输出内容 或 echo(输出内容);//只能输出4种标准类型,不能输出其他类型
var_dump(输出内容);//非常的详细,会告诉你数据类型和值,甚至某得人可能还会告诉你长度 - 万能谁都可以输出
只要是php输出在页面上的东西都会被前端拿走
2、变量和常量:
*变量 - 值允许改变
$变量名=值;
注意:使用时$不能省略
PHP中的变量也是弱类型,不需要指定数据类型,数据类型根据数据决定的
常量 - 值一旦创建不允许修改
const 常量名=值;
3、数据类型:
*四种标准/基本/原始类型:
Int - 整数
Float/Double - 浮点数
Boolean - 布尔,特殊的是如果echo输出false会不显示出来
string - 字符串
单引号 - 不识别变量
双引号 - 类似于模板字符串识别变量,建议加上{}
echo "我的名字叫{$name},今年{$age}岁,喜欢{$hobby}";
两种复合类型:
*Array - 数组
创建:
直接量:$arr=[elem1,...]; - 索引数组
内置对象:$arr=array( - 关联数组,对象
"key"=>value,
...
)
访问:$arr[i];
Object - 面向对象开发,不管他
两种特殊类型:
Resouce - 资源类型
null - 空,释放内存
null和""有区别
null - 不存在
"" - 存在,值为空
4、运算符:几乎和js一致,唯独字符串拼接符.
5、代码结构:
分支:没有任何区别,支持三目和短路
循环:没有任何区别
6、函数:没有任何区别
7、API:JS有的API,PHP也有,只不过语法不同用法不同,不需要你去记忆,只需要打开百度
ajax
同步交互和异步交互:
同步:客户端向服务器端发送请求直到服务器端进行响应的全过程,用户只能等待 - 不严格的说法:整个页面都会刷新一下
举例:1、网址提交 2、表单提交
异步:客户端向服务器端发送请求直到服务器端进行响应的全过程,用户不必等待 - 不严格的说法:局部页面会进行刷新
举例:1、ajax
很久之前我们就见过异步的技术:
定时器:就算定时器里面的操作在耗时,也不会影响后续代码,用户也能看到后续代码的效果
1、*****ajax:asynchronous javascript and xml:直译:异步的javascript和xml 好处:1、不会让用户等待 2、不会刷新页面也能和服务器端进行交互(比表单强) 3、将服务器端的数据获取到前端页面
使用步骤:4步
1、创建ajax核心对象xhr
var xhr=new XMLHttpRequest();
2、创建和服务器端的连接
xhr.open("GET/POST","xx.php");
3、向服务器端发送请求消息
xhr.send()
特殊:
1、GET方式,xhr.send失效,还不能省略,必须写为xhr.send(null),请求消息需要拼接到url?后面
xhr.open("GET","xx.php?key=value&key=value...");
xhr.send(null);
2、POST方式,xhr.send可用,在之前设置请求头部
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xhr.send("key=value&...");
4、绑定监听状态改变事件
xhr.onreadystatechange=()=>{
if(xhr.readyState==4&&xhr.status==200){
xhr.responseText;//php放在页面上的东西 - 服务器端响应的消息
}
}
ajax就是固定的方法:难就难在你拿到数据后要干什么