服务器PHP 数据库

PHP

  • 方便和后端开发人员进行交互
    外部三部分:html css JavaScriptPhpstudy使用说明:
    1、不要用中文
    2、启动Nginx mysql
    3、统一phpstudy版本网站-管理-安装5.4.45版本
    4、web服务的根目录 D:\WindowsApps\phpstudy_pro\WWW
    5、如何访问服务器上文件http://localhost 默认访问根目录下index文件http://127.0.0.1 环回IP 默认访问根目录下的index文件http://自己分配的ip 自己能访问,其他人(同一局域网)也能访问以上三种方式,默认都会访问到www目录
    6、服务器环境访问页面,缓存问题比较突出(清除缓存刷新)

基本组织架构

我们一个网站的组织架构基本上由下面的步骤完成

  • 用户 => 前端 => 后端 => 数据库
传输协议
  • 限制用户和服务器之间交流传输数据的方式和规则

  • 规则

    • 建立连接通道
    • 相互通信
    • 关闭连接通道
  • 只不过 http 是一种常见协议,不是很安全

  • https 是一种加密传输协议

端口号
  • http 协议默认是 80 端口号
  • https 协议默认是 443 端口号
  • apache服务器默认端口80
  • mysql服务器默认端口3306

PHP 基础语法

变量区分大小写,只识别双引号变量

  • 要求以 <?php 开头要求以 ?> 结尾

  • 必须设置响应头信息

  • header('Content-Type:text/html;charset=utf-8');

    <?php
    
      # php 的代码写在这里
      
    ?>

    超全局变量:在任何作用域都能直接访问

    $_REQUEST 通过此超全局变量,可以接收到前端通过get或post方式传递过来的参数
    $_GET 前端通过get方式传递过来的参数
    $_POST 前端通过post方式传递过来的参数

将数组转为json字符串:json_encode()


$arr = array('a' => 'hi', 'b' => 'hello', 'c' => '你好');
echo json_encode($arr); //会对中文unicode编码
echo json_encode($arr, JSON_UNESCAPED_UNICODE); //不对中文unicode编码

将json字符串转为数组:json_decode()


$json = '{"a":111,"b":222,"c":333,"d":444,"e":555}';
var_dump(json_decode($json, true)); // true 转为关联数组

关闭错误报告


error_reporting(0);

定义变量
<?php
	
  # 下面就是一个定义了一个变量,并且赋值为 100
  # 变量名就是 $num
  $num = 100;
  
  $boo = true;
  
  # 下面是一个字符串
  $str = "你好 php";
  
?>
条件语句
  • 在 php 中使用条件语句和 js 基本一致

    <?php
      
    $boo = true;
    
    if ($boo) {
      echo '你好,欢迎观临!';
    } else {
      echo '您还没有登陆';
    }  
      
    ?>
循环语句
  • 在 php 中循环语句和 js 基本一致

    <?php
    
    $num = 5;
      
    for ($i = 0; $i < $num; $i++) {
      echo 'hello php';
    }
      
    ?>
字符串拼接
  • 在 php 中,字符串拼接不再是使用 + 进行拼接了,而是使用 . 进行拼接

    $str = 'hello ';
    $str2 = 'world';
    $str3 = $str . $str2;
    echo $str3;
    # 得到的就是 hello world
数组
  • 在 php 中的数组和 js 中特别不一样

    <?php
    
      # 创建一个数组
      $arr = array(1, 2, 3);
    
      print_r($arr);
      # Array ( [0] => 1 [1] => 2 [2] => 3 )
      # 这个就类似于我们 js 中的数组,按照索引来的
    
      # 创建一个关联数组
      $arr2 = array('name' => 'Jack', 'age' => 18, 'gender' => '男')
      print_r($arr2)
      # Array ( [name] => Jack [age] => 18 [gender] => 男 )
      # 这个就类似于我们 js 中的 对象,键值对的形式
      echo json_encode($arr2);//把数组转成json字符串
      
    ?>

MySQL

关系数据库管理系统(Relational Database Management System)的特点
数据以表格的形式出现
每行为各种记录名称
许多的行和列组成一张表单
若干的表单组成database
主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。

数据库的数据类型

  • 数值类型
类型大小用途
TINYINT1 字节小整数值
SMALLINT2 字节大整数值
MEDIUMINT3 字节大整数值
INT或INTEGER4 字节大整数值
BIGINT8 字节极大整数值
FLOAT4 字节单精度 浮点数值
DOUBLE8 字节双精度 浮点数值
DECIMAL小数值
  • 日期和时间类型
类型格式用途
DATEYYYY-MM-DD日期值
TIMEHH:MM:SS时间值或持续时间
YEARYYYY年份值
DATETIMEYYYY-MM-DD HH:MM:SS混合日期和时间值
TIMESTAMPYYYYMMDD HHMMSS时间戳
  • 字符串类型
类型大小用途
CHAR0-255字节定长字符串
VARCHAR0-65535 字节变长字符串
TINYBLOB0-255字节不超过 255 个字符的二进制字符串
TINYTEXT0-255字节短文本字符串
BLOB0-65 535字节二进制形式的长文本数据
TEXT0-65 535字节长文本数据
MEDIUMBLOB0-16 777 215字节二进制形式的中等长度文本数据
MEDIUMTEXT0-16 777 215字节中等长度文本数据
LONGBLOB0-4 294 967 295字节二进制形式的极大文本数据
LONGTEXT0-4 294 967 295字节极大文本数据

操作数据库

  • 使用 php 链接 mysql 数据库进行数据的增删改查
  • 想要操作数据库,除了需要 php 的语法以外,还需要一个 mysql 的 sql 语句
  • 使用 php 操作数据库的步骤
    1. 和数据库建立链接
    2. 使用 sql 语句对数据库进行操作
    3. 获取结果
    4. 和数据库的链接断开

通过php操作mysql

连接mysql ->选择数据库->编写sql语句->执行sql语句-> 解析结果

1、连接数据库

$link = mysqli_connect(‘主机(域名/IP地址)’,‘用户名’,‘密码’,‘数据库’);

<?php
  # 下面就是建立链接,$link 会得到一个链接信息

$link = mysqli_connect('localhost','root','123456','db_gp03'); // 连接数据库db_gp03
if (!$link){  
  echo '连接失败:'.mysqli_connect_error();  
  die();//结束程序,后面的代码不再执行
}
echo '连接成功';

?>
2、设置编码·

mysqli_set_charset( $link, "utf8" );

3、执行 sql 语句操作数据库
<?php    
# 下面就是使用 sql 语句对数据库进行操作  
"insert into user set name='小张',sex='女',age='21'"; #向表中添加数据
参数1 连接对象  参数2 要执行的sql语句
$res = mysqli_query($link,$sql);
         ?>
if ($num > 0) {  
	echo '添加成功';
} else { 
	 echo '添加失败';
}
  • 这里有一个注意的点:
    • 我们拿到的结果是一个我们看不懂的处理信息
    • 需要使用 mysql_fetch_row || mysql_fetch_assoc 解析一下结果才能看得懂
    • 执行sql语句之后,数据库受影响的条数
$num = mysqli_affected_rows($link);
 echo $num;//1
关闭链接
  • 全部用完以后我们最好是关闭一下数据库链接

    <?php
      mysql_close($link);
    ?>
完整步骤

在这里插入图片描述
在这里插入图片描述

<?php
// 设置响应头信息
header('Content-Type:text/html;charset=utf-8');
// 1.连接数据库
$link = mysqli_connect('localhost','root','root','ren');
if (!$link){  
	echo '连接失败:'.mysqli_connect_error();  
	die();//结束程序,后面的代码不再执行
}
echo '连接成功';
// 2.执行sql语句
// 添加一条数据
$sql = "insert into user(name,sex,age,phone) values('小东','男',28,'13377883333')";
// 参数1 连接对象  参数2 要执行的sql语句
$res = mysqli_query($link,$sql);
// 执行sql语句之后,数据库受影响的条数
$num = mysqli_affected_rows($link);
// echo $num;//1
if ($num > 0) {  
	echo '添加成功';
} else {  
	echo '添加失败';
}
// 关闭数据库mysqli_close($link);
?>

常用的 sql 语句

  • 查询语句

    <?php
      # 查询 student 这个表里面的所有数据
      $sql = 'select * from `student`';
        
      # 查询 student 表中的数据里面 gender 为 男 的数据
      $sql = 'select  * from `student` WHERE `gender`="男"';
        
      # 查询 student 表中的数据里面 age 大于 18 的数据
      $sql = select * from `student` WHERE `age`>18';
        
      # 查询 student 表中的数据里面 age 大于 18 且 gender 为 男 的数据
      $sql = 'select  * from `student` WHERE `age`>18 AND `gender`="男"';
    
      # 查询 student 表中的数据里面 age 小于 22 或者 age 大于 28 的数据
      $sql = 'select  * from `student` WHERE `age`<22 OR `age`>28';
    
      # 查询 student 表中的数据里面从 第几条开始 查询多少条
      $sql = 'select  * from `student` LIMIT 0, 10';
        
      # 先按照条件筛选出数据以后再进行分页查询
      # 下面是查询表中所有 age>18 且 性别为男的所有数据,查出来以后从第 10 条开始查 10 条
      $sql = 'select  * from `student` WHERE `age`>18 AND `gender`="男" LIMIT 10, 10';
    
      # 查询表的模糊查询
      # 下面表示查询表中所有数据里面 name 字段中包含 "三" 字的数据
      $sql = 'select  *from `student` WHERE `name` LIKE "%三%"';
    
      # 查询排序,查询的时候按照某一个字段升序或降序排序
      $sql = 'select * from `student` ORDER BY `age` ASC';
      $sql = 'select * from `student` ORDER BY `age` DESC';
    ?>
  • 增加语句

    <?php
      # 向表中增加一条数据,再增加的时候主键不能由我们书写,而是 mysql 数据库自己递增
      $sql = 'INSERT INTO `student` VALUES(null, "张三", 18, "男", 1913, 100)';
        
      # 插入固定几个键的数据,其他的用默认值
      $sql = 'INSERT INTO `student` (`name`, `age`) VALUES("李四", 22)';
    ?>
  • 删除语句

    <?php
      # 删除表中 id 为 100 的数据
      $sql = 'DELETE FROM `student` WHERE `id`=100';
    
      # 删除表中 name 为 张三 的数据
      $sql = 'DELETE FROM `student` WHERE `name`="张三"'
    ?>
  • 修改语句

    <?php
      # 更新一条 id 为 100 的数据中的 name 字段的值和 age 字段的值
      $sql = 'UPDATE `student` SET `name`="张三", `age`=10 WHERE `id`=100'
        
      # 更新数据的时候让所有的数据增加一些内容
      $sql = 'UPDATE `student` SET `age`=age+1'
    ?>

一次解析所有数据

$rows = mysqli_fetch_all($res,1);
if (count($rows) > 0) {  
	echo json_encode($rows,JSON_UNESCAPED_UNICODE);
} else {  
	echo '暂无数据';
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值