37PHP MySQL数据库
一、PHP基础
简介
- 开源软件,跨平台,常用操作系统稳定执行。windows / Linus。做web开发的经典组合WAMP,LAMP,LNMP基本都是开源软件
- 入门简单,用户只需要关注应用,开发成本低
- 支持大多数主流数据库。MySQL,oracle,Redis等
文件以.php后缀结尾,所有程序包含在
<?php
代码
?>
避免使用中文目录会和中文文件名
php页面无法直接打开,需要运行在服务器环境中
文件位置
只有写在 D:\phpStudy\PHPTutorial\WWW 里面才能被解析
使用php
<?php
echo "helllo world"
?>
如果使用echo输出中文,会乱码
在php的语法中,末尾必须加分号,不然就会报错 (最后一行可以不加分号)
<?php
header("content-Type:text/html;charset=UTF-8");
echo "hello world";
echo "<br>";
echo "你好"
?>
变量
php是一门弱类型语法,变量的类型可以随意改变
变量其实就是存储数据的容器
变量的命名规则
- 不需要关键字进行声明,变量在第一次赋值的时候被创建
- 必须以$符号开始
- $后面的命名规则与js的变量命名规则一致
二、数据类型
简单数据类型
字符串
$str = "zhangsan";
echo $str
整数
$num = 100;
echo $sum
浮点型
$float = 10.10;
echo $float
布尔类型
$flag = true;
echo $flag;
$flag = false;
echo $flag
字符串连接符
- 在php中,+号只有算数的功能,并不能拼串
- 在php中,拼串使用.
php中的单双引号
- 字符串的定义可以使用单引号,也可以使用双引号
- 双引号可以解析变量
- 单引号的性能会高于双引号
数组
在php中数组分为两种,索引数组和关联数组
计算数组长度方法:count (数组名)
索引数组 (类似于js中的数组)
$arr = array("张三", "李四");
echo $arr[0]
关联数组 (类似于js中的对象)
$arr = array("name"=>"张三", "age"=>18);
echo $arr["age"]
输出语句
- echo 输出简单数据类型
- print_r() 输出数据结构,一般用于输出复杂类型
- var_dump() 输出完整的数据结构,包括类型,一般用于精准调试
二维数组
数组中的每个元素又是一个数组
二维数组的存取元素,需要两次访问,依次确定行和列
$arr[x][y]
$arr = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
echo $arr[2][2];
$arr = [
[
"name"=>"zhangsan",
"age"=>18
],
[
"name"=>"lisi"
"age"=>20
]
];
echo $arr[1]["age"];
三、语句
判断语句
基本上来书,所有语言的if…else语法都是一样的
$age = 18;
if($age >= 18){
echo "已成年";
}else{
echo "未成年";
}
循环语句
遍历索引数组
$arr = array("张三", "李四");
for($i = 0; $i < count($arr); $i++){
echo $arr[$i];
echo "<br>";
}
遍历关联数组
$arr = array("name"=>"张三", "age"=>18);
forEach($arr as $key => $value){
echo $key."=".$value."<br>"
}
四、函数
php中函数的语法与js中函数的语法基本一样,不同点在于
- 函数名大小写不敏感
- 函数的参数可以设置默认值
<?php
header("content-Type:text/html;charset=UTF-8")
function sayHello ($name="张三"){
echo "大家好,我叫$name";
echo "<br>";
}
sayHello();
sayHello("李四")
?>
五、JSON的处理
- json_encode() 把数组转化为json对象
- json_decode() 把json转化为数组
六、MySQL数据库
数据库基本概念
专门用来存储、管理数据的仓库 (空间),按照数据结构老组织、存储和管理,可以实现高效存取数据
- 关系数据库 基于表,表与表之间可以存在关系进行多表查询的存储方式,适合较为复杂的存储
- 非关系数据库 基于键值对的存储方式,数据之间没有耦合性,特点执行效率高
数据库的组织架构
数据表
表是以行和列的形式组织起来的数据的集合。项目一般需要不同的数据表,将数据分布存储在不同的数据表中
数据的数据存放在数据表中
记录-行
把表中每一个行叫做一条"记录"
字段-列
字段是比记录更小的单位,多个字段集合组成记录,即数据项
七、数据库操作方式
- show databases 显示所有的数据库
- use database 选中某一个数据库
- show tables 展示数据库下面的表
八、数据库的数据类型
- 整型 int
- 小数类型 float,decimal
- 字符串型 varchar(),char()
- 日期时间型 datetime,date,time
字段约束
not null 可以限制字段值不能为空
default 默认值
primary key 主键,唯一标识,不能重复,不能为空
auto_increment 自动增长
unique key 不能重复
增删改查
插入数据
insert into 表名 (字段列表) values (值列表)
修改数据
update 表名 set 字段名称1=值1,字段名称2=值2,... where 条件
删除数据
delete from 表名 where 条件
查询数据
select * from 表名 where 条件
九、PHP操作数据库
- mysqli_connect(ip, 用户名, 密码, 数据库名) 连接数据库
- mysqli_query($link, $sql) 执行SQL语句
- mysqli_error($link) 返回错误描述
- mysqli_close($link) 关闭连接
- mysqli_fetch_assoc($res) 从结果集中取得一行作为关联数组返回
- mysqli_num_rows($res) 返回结果集的行数
|