什么是PHP
PHP(Hypertext Preprocessor,超文本预处理器的字母缩写)语言是一门传统的**后台语言**,PHP是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到 HTML中,尤其适合 web 开发。
今天我们学习的PHP仅仅是用来帮助我们更好的学习前端。
php开发软件
phpstudy是一款集成式的php开发软件,里面分别包含了:
- php语言本身
- mysql数据库
- apache服务器(画图讲解,http三次握手)
开始我的第一个PHP程序
在开始之前我们需要了解以下几个问题:
代码写在哪?
我们打开phpstudy安装目录,找到 PHPTutorial/www文件夹,我们将来的PHP代码都是放在这里的。
文件名和后缀
所有的文件名/目录名都必须是英文的,不允许出现中文。
所有的php文件后缀都是**.php**。
开始测试
搞明白上面两个问题之后我们开始第一个php程序,在文件上输入:
<?
echo:"Hello world!;"
?>
上面的代码就是往网页中输出一个字符串"hello world"。
PHP基本语法规范
在PHP语言中也是需要遵守它的语法规范的,我们需要了解的如下:
- PHP标记
- echo
- 每行末尾添加分号
- 注释
- 和HTML混写
- 变量/函数
- 数据类型(var_dump())
-
int
-
float
-
string(单双引号的区别)
-
blooean
-
array(关联,索引)
-
object
-
null
-
resource(特殊类型)
"tom", "age"=>20 ]; // 增加 $arr["height"] = "180cm"; // 修改 $arr["age"] = 18; // 删除 unset($arr["age"]); // 查询 echo $arr["name"];?>
关联数组转换JSON
关联数组和JS中的JSON数据有些相似,实际上关联数组是可以转换成JSON字符串的。
-
json_encode():对变量进行 JSON 编码
-
json_decode():对 JSON 格式的字符串进行解码,转换为 PHP 变量
"tom", "age"=>20 ]; $j = json_encode($arr2); $j;// string(23) "{"name":"tom","age":20}" $a = json_decode($j); $a;// 转换为对象类型 /* object(stdClass)#1 (2) { ["name"]=>string(3) "tom" ["age"]=>int(20) } */ ?>
数据库(mysql)
在web中最重要的东西就是数据,而数据如何才能妥善的保存就是我们早期的web开发者所面对的一大难题。
数据必须保证以下几点:
- 安全(最重要)
- 读写方便
- 高效
所以一个叫做数据库的产品应运而生。
mySql
MySQL 是最流行的关系型数据库管理系统。这种数据库的特点(画图解释):
- 数据以表格的形式出现
- 每一行都是一条记录
- 每一列都是一个单独的字段
- 若干个表格组成一个完整的数据库
SQL语句
在程序中我们并不是直接使用navicat来管理数据库的,我们需要通过一种语言来控制数据库,这种语言叫做SQL语言。
我们接下来学习的就是基本的数据库操作语句。
-
增:**INSERT INTO** tableName (字段1,字段2...) **VALUES** (值1,值2...)
eg:INSERT INTO stu (name,age) VALUES ('张三',20);
-
删:**DELETE FROM** tableName **WHERE** 字段=值
-
改:**UPDATE** tableName **SET** 字段1=值1,字段2=值2 **WHERE** 字段=值 and age>10
eg:UPDATE stu SET name='李四',age=25 WHERE
-
查:**SELECT** 字段 **FORM** tableName
使用PHP连接MySql数据库
在PHP中连接数据库我们可以使用PHP内置的mysqli类,该类的构造函数为:
<?php
$host = '127.0.0.1';// 数据库主机
$user = 'root';// 用户名
$pwd = 'root';// 密码
$dbname = 'students';// 数据库名称
// 连接数据库
$db = new mysqli($host,$user,$pwd,$dbname);
?>
上面的代码已经连接了mysql服务器,
变量$db就是操作数据库的对象,代表的就是student数据库, 在该数据库中我们拥有一个stu表。下面的代码就是执行增删改的语句。
<?php
// 往数据库中增加数据
$db->query("INSERT INTO stu (username,age) VALUES ('{$username}','{$age}')");
// 删除数据库中的数据 删除年龄为0的数据
$db->query("DELETE FROM stu WHERE age=0");
// 更新数据 将vanC的年龄更新为22
$db->query("UPDATE stu SET age=22 WHERE username='vanC'");
?>
在所有的数据库中查询语句都是最复杂也是最体现出程序员水平的部分,下面就是需要掌握的SQL查询基本知识点:
-
SELECT:查询基础
-
*:取出所有字段
-
FROM table:目标数据表
-
WHERE:数据过滤条件
-
ORDER BY:排序条件
-
LIMIT:一次性取出的数量,常用于分页query("SELECT * FROM student"); // 查找出所有年龄大于30的数据 $db->query("SELECT * FROM student WHERE age>30"); // 按照年龄的大小顺序查找数据 $db->query(" SELECT * FROM student ORDER BY age"); // 按照年龄找出前三名数据 $db->query("SELECT * FROM student ORDER BY age LIMIT 3"); // 找出所有年龄在20-40之间的数据 $db->query("SELECT * FROM student WHERE age>20 AND age<40"); // 按照年龄找出4-6名的数据,跳过前三条 $db->query("SELECT * FROM student ORDER BY age LIMIT 3,3"); ?>
上面的代码仅仅只是进行查询,然而查询的根本目的是将数据展示出来,所以我们还需要下面的操作。
<?php
// 接收查询语句的返回值
$mysqli_result = $db->query("SELECT * FROM student ORDER BY age LIMIT 3,3");
//声明一个数组
$arr=[];
//以关联数组的形式返回(固定格式)
while($row=$mysqli_result->fetch_array(MYSQLI_ASSOC)){
array_push($arr,$row);
}
//对得到的php变量(关联数组)进行JSON编码
$json=$json_encode($arr);
?>