MySQL基本内容
访问:2种
1、图形化界面方式(更简单更方便)- 傻瓜式操作
要求:同时打开MySQL和Apache
访问:127.0.0.1:端口号/phpmyadmin
localhost:端口号/phpmyadmin
有的同学打不开
2、*****命令行方式:复杂很多,但是这样你才能学到真正的SQL语句
如何进入数据库
1、打开cmd
2、输入cmd的命令,进入到d:/xammp/mysql/bin
3、登录账号:mysql -uroot -p 千万不要加分号
4、退出登录:exit;
5、学习SQL语句:关系型数据库的SQL语句时通用的
1、数据库
创建:CREATE DATABASE IF NOT EXISTS 数据库名称 CHARACTER SET utf8;
查看:SHOW DATABASES;
切换:USE 数据库名称;
2、数据表:
数据库的数据类型:
数值:*Int - 整型
Float/Double - 浮点型
Decimal - 精确值
字符串:CHAR - 长度固定
*VARCHAR - 长度可变的
日期:DATE - YYYY/MM/DD
DATETIME - YYYY/MM/DD hh:mm:ss
TIMESTAMP - 时间戳(标识:唯一不重复 - id也可以)
创建数据表:
CREATE TABLE 表名(
字段名 数据类型,
...
);
举例:
CREATE TABLE stu(
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(30),
pwd VARCHAR(6),
email VARCHAR(36),
vip VARCHAR(1)
);
主键约束:PRIMARY KEY - 不能重复
主键自增:AUTO_INCREMENT - 每次自动+1
3、*****数据:4句以后非常常用的SQL语句
增:INSERT INTO 表名 VALUES(字段值,...);
举例:INSERT INTO stu VALUES(0,"喻杭","123123","yh@qq.com","0"); - 注意增加时一定要和字段名一一对应
删:DELETE FROM 表名 WHERE id=几; - 一旦删除就回不来了
改:UPDATE 表名 SET 字段名=字段值,... WHERE id=几;
举例:UPDATE stu SET name="袁诗杰",vip="0" WHERE id=9;
查:3种语法
1、SELECT * FROM 表名; - 得到此表里面所有的数据
2、SELECT * FROM 表名 WHERE id=几; - 得到id=几的所有的数据
3、SELECT name,pwd FROM 表名; - 得到此表里面所有的名字和密码
1、PHP:最简单的一门语言:和javascript语法非常相似,但是做的事儿绝对不一样:js(特效) 后端语言(数据库交互)
火爆架构:LAMP php文件后缀名.php 1、*****如何运行php文件 打开apache,将你的项目/文件放到htdocs文件夹中,打开浏览器输入:127.0.0.1,打开你需要访问的文件
特殊:其实php文件也是支持前端代码和php代码的,以后我们上网的时候,看到网页的后缀.php,也不要惊讶
2、PHP语法基础: 1、输出方式: *1、echo(想要输出的内容); 或 echo 想要输出的内容; - 类似document.write输出在页面上 只能输出4种标准类型
2、var_dump(想要输出的内容); - 类似document.write输出在页面上,但是输出的非常详细,可以查看到数据类型是什么以及值是什么
正是因为输出的太过详细了,以后不会用到太多,因为以后我们学习了ajax过后,会把后端放到页面上的所有东西都拿到前端去
2、变量和常量:
*1、变量:值可以改变
语法:$变量名=值;
注意:使用时$也不能省略
2、常量:一旦创建后,值不可以修改
语法:const 常量名=值;
3、数据类型:
四种标准/基本/原始类型:
整型:Int
浮点型:Float/Doublue
布尔:Boolean
*字符串:string - 有区别
单引号 - 只能放入纯文本
双引号 - 支持变量,类似于js中模板字符串
echo "我的名字叫{$name}今年{$age}岁";
两种复合类型:
Array - 数组
创建:2种
1、直接量:$arr=[值1,...]; - 索引数组
2、内置函数:$arr=array(
key=>value,
...
)
访问:$arr[下标/自定义下标];
遍历:循环
Object - 面向对象开发,我们不管
两种特殊类型
1、Resource - 资源类型,连接上数据库过后才会看到
2、null - 空,释放内存
"" - 有,值为空
null - 不存在
4、运算符:几乎和js一致,唯独字符串拼接.,意味着php想要调用方法和属性绝对不可能使用.操作
5、分支:完全一样:switch...case... if...else... 三目
6、循环:完全一样:while do...while for
7、函数:完全一样:
8、API:理论上完全一样!但是操作却不同,不需要做任何学习和任何记忆,面向百度开发 - js有的,php也有,但是用法不同
2、全栈开发 1、前端->后端: 前端需要发起请求:目前来说,只有表单提交这一个请求是我们学过的,也还有ajax请求 1、表单提交:请求 注意: 1、input必须添加name属性,甚至有的人(radio/checkbox/option)可能需要添加value 2、form表单必须添加action="服务器端文件的路径"; 3、表单提交,只负责传输,不负责保存 4、method到底是get还是post,需要和后端进行沟通的 get - 跟安全性不挂钩的时候 - 搜索框 post - 跟安全性挂钩的时候
后端需要接受住前端传来的请求消息(查询字符串部分):
$_GET/POST/REQUEST["pwd"];
REQUEST - 请求:能接住一切请求不管是get还是post
2、后端<->数据库:php自带操作mysql的API,只需要学4.5句话
1、创建和数据库的连接对象
$conn=mysqli_connect("hostname","username","userpwd","dbname");
举例:$conn=mysqli_connect("127.0.0.1","root","","h52203");
hostname - 主机号:127.0.0.1
username - root
userpwd - 空的,不能不写,必须写为""
dbname - 数据库名称
1.5、设置传输过程中的中文编码
mysqli_query($conn,"SET NAMES utf8");
2、创建SQL语句
$sql="INSERT/DELETE/UPDATE/SELECT";
3、对数据库执行SQL语句
$rs=mysqli_query($conn,$sql);
//增删改:结果都是一个布尔值,true代表执行成功,false代表执行失败
//查:问题:得到一个我们谁都不认识的结果集对象
解决:PHP提供了一套API帮我们把不认识的结果集变成认识的东西
mysqli_fetch_row(不认识的结果集);//一次只会拿到一行数据,是一个索引数组
*mysqli_fetch_assoc(不认识的结果集);//一次只会拿到一行数据,是一个hash数组(对象)
mysqli_fetch_array(不认识的结果集);//一次只会拿到一行数据,是一个既有索引又有自定义下标的数组
固定套路:
while(($row=mysqli_fetch_row/assoc/array($rs))!=null){
$row拿到这一行数据,你要做什么操作?
}
4、断开和数据库的连接
mysqli_close($conn);
、概念:
同步交互:用户向服务器端发起请求直到服务器端进行响应的全过程,用户是不可以做其他事情的(等)
典型:表单提交请求、网址请求 - 都属于同步请求
异步交互:用户向服务器端发起请求直到服务器端进行响应的全过程,用户是可以做其他事情的(不等)
典型:ajax请求
2、ajax:asynchronous javascript and xml;直译:异步的javascript和xml - 前端技术(javascript中的一部分)
不严格的定义:页面不会完整刷新,只会导致局部发生改变
我们早就见过异步技术/异步代码了:
1、定时器:定时器里面的内容再耗时也不回卡主后续代码 - 做特效
2、ajax:目的:在不刷新页面的情况下和服务器端进行交互
3、如何使用:4步骤
1、创建ajax核心对象XMLHttpRequest;
var xhr=new XMLHttpRequest();
2、建立和服务器端的连接
xhr.open("GET/POST","xx.php");
3、向服务器端发送请求
xhr.send(null);
特殊:
1、GET请求:xhr.send()会失效,但是还不能省略,必须写为xhr.send(null),请求消息需要放到url?后面进行添加
xhr.open("GET","xx.php?key=value&...");
xhr.send(null);
2、POST请求:xhr.send()可用,但是必须在之前加上一句话设置请求头部
xhr.open("POST","xx.php");
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放在页面上的一切东西
//难在你拿到了东西,你要干什么
}
}