5周

112 阅读7分钟

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;

查:3SELECT *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、将服务器端的数据获取到前端页面

使用步骤:41、创建ajax核心对象xhr
   var xhr=new XMLHttpRequest();

2、创建和服务器端的连接
   xhr.open("GET/POST","xx.php");

3、向服务器端发送请求消息
   xhr.send()

	特殊:
	  1GET方式,xhr.send失效,还不能省略,必须写为xhr.send(null),请求消息需要拼接到url?后面
		xhr.open("GET","xx.php?key=value&key=value...");
		xhr.send(null);

	  2POST方式,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就是固定的方法:难就难在你拿到数据后要干什么