PHP语言

一、认识前后端

前端 用户可见的界面,数据展示在页面上给用户看到
后端 把前端要展示的数据存储到数据库中,前端需要时把数据库的数据再传递给前端(php运行在 apache的服务器上)

二、基本组织架构

我们是一个 前端开发工程师
还有一个工作叫做 后端开发工程师(JAVA,PHP,nodejs)
我们一个网站的组织架构基本上由下面的步骤完成
用户 => 前端 => 后端 => 数据库

例如:

我们浏览一个新闻网站 
1)用户输入网址 
2)前端人员就要把对应的页面给到用户,在页面打开的过程中,想后端人员索要新闻信息
3)后端人员接收到前端人员索要新闻信息以后,就去数据库中找到对应的新闻信息数据给前端人员 
4)前端人员接收到后端人员给的新闻信息以后,使用我们的办法吧新闻信息数据渲染在页面上 
5)页面就打开了,用户就可以看到一个新闻网站了

再比如:

用户登陆一个网站 
1) 当用户书写完表单内容以后,点击提交按钮的时候 
2) 前端人员拿到用户填写的内容,把数据整合好传送给后端人员 
3) 后端人员接收到数据以后,去数据库中进行比对,看看有没有对应的数据 
4) 然后告诉前端人员,你给我的用户名和密码是否正确 
5) 前端吧信息反馈给客户看到 - 如果正确就是跳转页面 - 如果不正确提示用户名或者密码有问题
用户登陆一个网站
1 ) 当用户书写完表单内容以后,点击提交按钮的时候
2 ) 前端人员拿到用户填写的内容,把数据整合好传送给后端人员
3 ) 后端人员接收到数据以后,去数据库中进行比对,看看有没有对应的数据
4 ) 然后告诉前端人员,你给我的用户名和密码是否正确
5 ) 前端吧信息反馈给客户看到
- 如果正确就是跳转页面
- 如果不正确提示用户名或者密码有问题

 

三、服务器的简单理解

一、为什么要用服务器:

我们不可能把所有的网页数据全部存储到电脑上,第一不安全,第二太大。所有我们把前端需要的数据存放在 网路的另一端,需要的时候通过网络来进行请求。  

二、什么是服务器

它就是一个软件,当他跑起来一些程序的时候,就是一个服务器。
我们的电脑也能变成一个服务器,只要跑一些特殊的程序就可以,只不过它没有专业的服务器运算,存储的能 力强。apache服务器

三、服务器是通过什么被访问

1. 什么是ip地址:为计算机网络相互连接进行通信而设计的协议。具有唯一性。
2. 什么是域名: 每一台计算机都有一个唯一ip地址,特别难记,所以出现了今天的(域名)。像
www.baidu.com
3. 什么是端口号:简单理解为当你使用ip地址访问到电脑以后,帮你确定访问的是哪一个服务器软件
https://www.baidu.com:443---->具体的服务器地址
协议 域名 端口号
https://www.baidu.com:443---》等价于https://www.baidu.com
http协议的默认端口号是80
https协议的默认端口号是443
端口:服务器端也有文件夹(0-255)
文件夹内部有子文件夹,(0-255)
0~ 605535 多个端口
8080 ,8089,7878,
特殊ip:127.0.0.1 代表本机
特殊域名:locahost 代表本机

四、常见的服务器

目前常用的服务器就是Apache和Tomcat
我们要学习的服务器就是apache,它是php的运行环境
服务器语言端除了PHP还有,JSP(java),ASP,python,nodeJS,go等等。
PHP:personal home page;

五、服务器的使用

学习内容:
Apache 服务器(软件)
Mysql 数据库(软件)
PHP 后端语言
使用一个phpstudy(小皮)的集成软件(里面含有Apache、mysql)即可
安装:
下载安装包,双击运行安装 自己选择一个目录,全目录不能出现中文和空格 
卸载:
打开控制面板 找到phpstudy删除 删除完毕后,把相关目录文件删除 
使用
1. 打开小皮面板 2. 点击启动按钮 3. Apahce和Mysql保证是开启状态的标准:都是绿色的 
注意:
这个集成软件的默认配置有:
 www目录,是服务器的根目录,以后写代码,需要在这个文件夹下进行写 
80端口,是你apache软件的'编号' 
index,是网站的首页,当你在网站根目录下有一个叫index.html 的文件,你访问服务器的时候会自动 
打开

四、PHP介绍

php是一门后端语言。是一门服务端语言。运行在服务器端
php是PHP的后缀,我们能看懂代码即可
主要目标是允许web开发人员快速编写动态网页
一句话概括:PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。
为什么要学习一个后端语言呢?
目前市场上的需求,要求前端人员掌握一个后端语言
方便和后端开发人员进行交互
补充:
服务器端除了PHP还有JAVA, JSP,python,nodejs,go等语言、

PHP优点:

跨平台,同时支持多种数据库(mysql(关系型数据库),MongoDB(非关系型数据库))
安全性和效率好
使用成本低
相比其他后端语言,简单易学

缺点:

安装比较复杂,配置比较多,太灵活
PHPStudy(PHP运行环境一键安装包)
PHPstudy是搭建服务器的工具,我需要把我写的php代码放在phpstudy工具的WWW目录下,‘www’就
是服务器的目录,即放置项目代码的目录。
自己的计算机访问自己的服务器,可以在地址栏里输入locahost或者127.0.0.1

五、php基本语法

一、注意点

PHP 脚本可放置于文档中的任何位置。PHP 脚本以 <?php 开头,以 ?> 结尾
<?php 

// 此处是 PHP 代码

 ?>
PHP 文件的默认文件扩展名是 ".php"
PHP语句以分号结尾;
PHP 代码块的关闭标签也会自动表明分号(因此在 PHP 代码块的最后一行不必使用分号)

二、PHP中的注释

PHP 代码中的注释不会被作为程序来读取和执行。它唯一的作用是供代码编辑者阅读。
PHP支持三种注释
<?php 


// 这是单行注释 

# 这也是单行注释 

/*

这是多行注释块 它横跨了 多行

*/

?>

三、PHP变量

变量是存储信息的容器:

<?php 
 $x=5;
 $y=6;
 $z=$x+$y; 
echo $z; 
?>
注释:请把变量视为存储数据的容器。

变量规则:

变量以 $ 符号开头,其后是变量的名称
变量名称必须以字母或下划线开头
变量名称不能以数字开头
变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _)
变量名称对大小写敏感($y 与 $Y 是两个不同的变量)

四、PHP输出

1. echo 输出的内容;---->重点使用
2. print_r(输出的内容);--->了解即可
3. var_dump(输出的内容);---->了解即可
输出的区别:
1. echo 只能输出 基本数据类型,不能准确的输出复杂数据类型
2. print_r() 可以输出所有数据类型
3. var_dump() 不光可以输出所有数据类型。并且会带有该数据类型的一些基本信息
<?php 

echo "<h2>PHP is fun!</h2>"; 

echo "Hello world!<br>"; 

echo "I'm about to learn PHP!<br>"; 

?>

展示如何用 echo 命令来显示字符串和变量:

<?php 

txt1="Learn PHP";

 $txt2="W3School.com.cn"; 

$cars=array("Volvo","BMW","SAAB");

 echo $txt1; echo "<br>";

 echo "Study PHP at $txt2"; 

echo "My car is a {$cars[0]}";

 ?>

五、PHP的数据类型

三大类:

1. 基本数据类型
1.1 整型
1.2 小数
1.3 布尔类型
1.4 字符串
2. 复合数据类型
2.1 数组类型
2.2 对象类型
3. 特殊数据类型
3.1 null

六、PHP字符串

字符串可以是引号内的任何文本。您可以使用单引号或双引号:
在 PHP 内有两种定义字符串的方式
1. 单引号(''): 不能直接解析变量
2. 双引号(""): 可以直接解析变量
字符串拼接
+ 在 PHP 内, 使用 点(.) 进行字符串拼接
 
<?php
$x = "Hello world!";
echo $x;
echo "<br>";
$x = 'Hello world!';
echo $x;
?>

七、PHP整数

整数是没有小数的数字。int


<?php
$x = 5985;
var_dump($x);
echo "<br>";
$x = -345; // 负数
var_dump($x);
echo "<br>";
?>

八、PHP 浮点数

浮点数是有小数点或指数形式的数字。float
<?php
$x = 10.365;
var_dump($x);
echo "<br>";
?>

九、PHP逻辑

逻辑是 true 或 false。
$x=true;
$y=false;
var_dump($x);

十、PHP数组

数组在一个变量中存储多个值。
$arr = array('hello','hi','world')
for($i =0;i<count($arr);$i++){
echo $arr[$i].'<br>';
}
<?php
$cars=array("Volvo","BMW","SAAB");
var_dump($cars);
?>

十、函数

<?php
function testFunc($num1,$num2){
$res = $num1+$num2;
return $res;
}
$num11 = 250;
$num22 = 40;
$res = testFunc($num11,$num22);
echo '计算结果是='.$res
?>

十一、PHP的流程控制

顺序控制(从上到下,从左到右)
分支语句
if(条件表达式){}else{}
switch(表达式){
case 常量1: 语句1;break;
case 常量2: 语句1;break;
case 常量3: 语句1;break;
case 常量4: 语句1;break;
default: 语句;break;
}

十二、PHP与前端交互(重点)

PHP接收前端的数据
 
$_GET[‘参数名’]
$_GET['username']获取usersname
$_GET['password']获取password


$_POST[‘参数名’]
$_REQUEST['参数名']
请求参数有中文的解决方案:
header('Content-type:text/html;charset=utf-8');


<?php
header('Content-type:text/html;charset=utf-8');
$nick = $_GET['name'];
?>

六、数据库

一、数据库的概念
概念:数据库是按照数据结构来组织,存储和管理数据的仓库。
:仓库
:一个仓库被分为了很多的部分,很像类 (Student)
字段:很像类的属性 ( id name sex password)
每个字段的数据类型:
int-->整数类型
float-->浮点数
char--> 定长字符串
varchar--->变长字符串
blob--->二进制类型
date-->日期类型

二、常见的数据库

关系型数据库
oracle、mysql、SQLServer、DB2、sybase
非关系型数据库
Redis、HBAse、CouchDb、MongoDB

三、MySQL的使用

使用工具:phpstudy 。点击mySQL管理器,选择MYSQl-front,进入SQL编辑器
创建数据库:鼠标右键(可视化面板) 代码:create database 数据库名
打开一个库 use mydb
创建表
create table students(
id int not null primary key,
name varchar(8) not null,
sex char(4) not nul,
age tinyint not null
)

增加一条记录

insert into student(username,userpass) values ('张三丰','123');

删除

delete from student where username='张三丰

select * from student where username='张' and usersex='男'
查询出来的是一个表格的形式

update student set usersex='女' where username='张三丰'
新增

insert [into] 表名[{列名1,列名2,...}] values (值1,值2)

例如:
insert into students(name,sex,age) values('孙丽华','女',21)
查询
select 列名称 from 表名称[查询条件]
select name,age,from students;
select* from students;
select* from students where age>12
select* from students where name like '%王%'; 模糊查询
select* from students where id<5 and age>20
删除

delete from 表名称 where 删除条件;
delete from students;删除表中的所有数据
delete from students where id=2;删除表中id为2的数据
delete from students where age<20;删除表中年龄小于20
修改

update 表名称 set 列名称=新值 where 更新条件
update students set age = age+1
update students set name='张伟鹏',age=19 where tel='13067999999'

四、创建数据库和表

五、PHP连接MySql

一、连接数据库:mysqli_connect();
语法:mysqli_conncet(servername,username,password,dbname);
参数:
servername:规定要连接的服务器的名称:默认是'localhost:3306'
username:规定登录所使用的用户名,默认值是拥有服务器进程的用户
password:规定登录所用的密码,默认是''
dbname:表示式数据库名

返回值:返回一个代表到 MySQL 服务器的连接的对象。


$con = mysqli_connect('localhost','root','root','mydb')
if(!$con){
echo('连接失败')
}else{
echo('连接成功')
}

二、增加内容:

给students表中插入数据

$sql = 'insert into student(username,password) values("1988","洪七公")'

mysqli_query($conn,$sql)返回插入成功还是失败. 成功返回true。失败返回false

if(mysqli_query($conn,$sql)){

echo '新记录插入成功'

}else{

echo 'error'.$sql.'<br>'.mysqli_error($conn)

}

mysqli_num_rows()表示影响行的个数

$rowCount = mysqli_num_rows($result);

if ($rowCount==0) {

echo '登录失败,用户名或者密码错误';

}else{

echo '<script>location.href="http://www.baidu.com"</script>';

}

三、查询:

$sqlstr ='select*from student';

$result = mysqli_query($conn,$sqlstr);//执行查询后的sql语句后,返回的是查询的结果

查询行:$query_num = mysqli_num_rows($result)

查询列:$query_cols = mysqli_num_fields($result)

$query_row = mysqli_fetch-array($result);拿出结果集中的某一行,返回的是拿到的行

函数返回结果集中行的数量:mysqli_num_rows(result);

函数返回结果集中字段(列)的数量:mysqli_num_fields(result)

函数从结果集中取得一行作为关联数组:mysql_fetch_array(result)

六、前后端交互

1、接收前端发来的数据
2、逻辑处理
3、响应数据

注册

// 接收前端数据

header('content-type:text/html;charset=utf-8');

$name = $_POST['username'];

$pass = $_POST['password'];

//连接数据库

$con = mysqli_connect('localhost','root','root','my2102');

// 处理逻辑

if ($con) {

$sql = 'insert into book(username,userpass)

values("'.$name.'","'.$pass.'")';

//执行插入语句,返回的是布尔值

$result = mysqli_query($con,$sql);

}else{

echo '连接失败';

}

// 响应

if ($result) {

echo '注册成功';

}else{

echo '注册失败';

}

mysqli_close($con);

登录

header('content-type:text/html;charset=utf-8');

// 接收前端数据
$username = $_POST['username'];
$password = $_POST['password'];

// 处理逻辑
// 1. 连接数据库
$conn = mysqli_connect('localhost','root','root','my2102');
if ($conn) {
echo '连接成功';
$sql = 'select * from book where username="'.$username.'" and
userpass="'.$password.'"';

执行查询语句,返回的是一个表格,需要通过mysqli_num_rows($result)来查看影响了多少行
$result = mysqli_query($conn,$sql);
}else{
echo '连接失败';
}

// 响应
mysqli_close($conn);
$rowCount = mysqli_num_rows($result);// mysqli_num_rows: 影响行的个数
if ($rowCount) {
echo '<script>location.href="http://www.baidu.com"</script>';
}else{
echo '用户或者密码错误';
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值