MySQL基本内容:
访问:2种 1、图形化界面 - 傻瓜式 要求:同时打开apache和mysql 访问:127.0.0.1:端口号/phpmyadmin localhost:端口号/phpmyadmin 2、*命令行方式:复杂,多,但是这样才能学到真正的SQL语句 如何进入数据库: 1、打开cmd 2、输出cmd的命令:进入到d:/xampp/mysql/bin 3、登录:mysql -uroot -p 直接回车,别加分号 4、退出:exit 5、学习SQL语句:关系型数据库的SQL语句是公用的 1、数据库: 创建:CREATE DATABASE IF NOT EXISTS 数据库名称 CHARACTER SET utf8;
查看:SHOW DATABASES;
切换:USE 数据库名称;
删除:DROP DATABASE 数据库名;
2、数据表: 数据库的数据类型 数值:Int - 整型 Float/Double - 浮点型 Decimal - 精确值
字符串: CHAR - 长度固定的 VARCHAR - 长度可变的
日期: DATE - YYYY/MM/DD DATETIME - YYYY/MM/DD HH:mm:ss TIMESTAMP - 时间戳(标识:唯一不重复 - id也可以)
创建数据表: CREATE TABLE 表名( 字段名 数据类型, ... );
举例:之前还要use 数据库名 CREATE TABLE stu( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(30), pwd VARCHAR(6), email VARCHAR(30), vip VARCHAR(1) );
主键约束:PRIMARY KEY - id不会重复 主键自增:AUTO_INCREMENT - 每次会自动+1
3、*数据: 增:INSERT INTO 表名 VALUES(字段值,...); 举例:INSERT INTO stu VALUES(0,"周鸿奥","321321","zha@qq.com","0");
删:DELETE FROM 表名 WHERE id=几; - 一旦删除就回不来了 举例:DELETE FROM stu WHERE id=5;
改:UPDATE 表名 SET 字段名=字段值,...WHERE id=几; 举例:UPDATE stu SET name="周鸟奥",pwd="123123",vip="1" WHERE id=6;
查:3种语法: 1、SELECT * FROM 表名; - 得到这个表里面所有的数据 2、SELECT name,pwd FROM 表名; - 得到这个表里面的用户名和密码 3、SELECT name,pwd FROM 表名 WHERE id=几; - 只会得到这个id的用户名和密码
疑惑: 1、为什么要大写:MySQL的约定,SQL语句要大写 - 这些语句以后都会放到后端脚本语言(php/node/c#/jsp)中运行 2、以后是不会用cmd来录入数据的:不可能,以后必然是全栈操作,必须记住4个语句
PHP简单使用
1、*如何运行php文件: 打开apache,将你的项目/文件放到htdocs文件中,打开浏览器输入:127.0.0.1,打开你需要的文件 建议把整个htdocs文件夹直接拖到你的编辑器里
PHP相对于js语法更为严格,
2、PHP语句基础:
输出方式:
1.echo( 想要输出的语句 ) 或 echo 想要输出的语句;
2.var_dump( 想要输出的内容 ) - 类似document.write输出效果,可以支持标签。
只能四种标准类型,不能输出别的类型
变量与常量:
1.变量:值可以改变;
语法:$变量名 = 值;
注意:记得使用变量名的时候也要添加$
2.常量:一旦创建不允许修改
语法:const 常量名 = 值。
3、*数据类型: 四种标准/原始/基本/值类型: Int - 整型 Float/Double - 浮点型 布尔 - Bool 字符串 - String - 有区别 单引号 - 只能放入纯文本 双引号 - 支持变量,类似于js模板字符串 echo "我的名字叫{$name},今年{$age}岁,喜欢{$hobby}";
两种复合类型: 1、Array - 数组 创建: 1、直接量:$arr=[值1,...] - 索引数组 2、内置函数:$arr=array( - hash数组 key=>value, ... )
2、Object - 面向对象,不需要面向对象
两种特殊类型:
1、Resource - 资源类型,连接上数据库才能看到 2、null - 空,释放内存 "" - 有,值为空 null - 不存在
4、运算符:几乎和js一直,唯独字符串拼接.,意味着php想要调用方法绝对不可能用.
5、分支:完全一样
6、循环:完全一样
7、函数:完全一样
8、API:理论上完全一样的,JS有的,PHP也有,但是写法却不相同,我们不需要做任何记忆,面向百度开发
全栈开发
1.前端-->后端:
1.前端可以通过表单或者Ajax进行传输数据。
<form action="xx.后端路径" method="get/post">
<input name="" value="" /> // 如果是用户来输入则不需要写value,用户来选择需要把 value提前写好
<提交按钮>
</form>
2.后端接受前端传来的数据
获取的可以是get、post、request(请求)的数据 语法如下:
$变量 = $_GET/POST/REQUSET["前端传来的input的name的值"]; //变量的值为对应input的value
REQUEST - 请求:前端发送到后端,不管是GET还是POST都能接住
GET - 大小有限2kb,不安全 - 搜索框 POST - 没有大小限制,安全的 - 注册/登录
3.后端<---->数据库
1、创建和数据库的连接对象:
$link = mysqli_connect( "hostname",“username”,“userpwd”,"dbname" );
hostname - 主机号 username - 数据库用户名 userpwd - 数据库密码 dbname - 数据库名称
举例:
$link=mysqli_connect("127.0.0.1","root","","h52201");
设置中文编码
mysql_query( $link, "SET NAMES utf8" );
2、创建SQL语句
$sql = "INSERT/DELETE/UPDATE/SELECT";
3.哪个数据库要执行啥子sql语句,会得到一个结果
增加数据:
$result=mysqli_query($link,$sql);
增删改得到的是布尔值
查:返回的是我们不认识的数据
解决:
while(($row=mysqli_fetch_*row|*assoc|array($result))!=null){
var_dump($row);//每一行要做什么操作看你自己
echo "<br>";
}
4、断开和数据库的连接
mysqli_close( $link )
form表单:
<input type="hidden" name="随便" value="随便"> - 隐藏作用域:给后端判断我们条件表单不同做不同的操作
Ajax:异步的javascript和xml
同步交互和异步交互:
同步:前端在向后端发起请求,知道服务器端进行响应的全过程,我们用户是不能做其他事情的。
比如:网址的请求,表单请求 - 同步交互
异步:前端在向后端发起请求,直到服务器进行响应的全过程,我们是可以做其他事情的。
比如:Ajax;
作用:和服务器端进行交互,向服务器端发起异步请求 - 把服务器端的数据拿回前端
语法:固定步骤:4步
1、创建出Ajax核心对象 XMLHttprequest -->即:XHR核心对象
var xhr = new XMLHttprequest ( );
2、建立和服务器端的连接
xhr.open( "GET/POST",“xx.php” );
3、向服务器发送请求
xhr.send( null );
特殊:
1.如果你是GET请求,那么你的send方法会失效,但是不能省略,必须写为:
xhr.open(”GET“,”xx.php ? key=value&...“);
2.如果你是POST请求,那么你的send方法可用,但要加上设置要求头部,必须写为:
xhr.open(“POST”,“xxx.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输出在页面上的东西就会拿回前端 - 难在拿到数据后你要干什么;
}
}