小迪安全第二十二天-安全开发-PHP应用&数据库操作&留言板功能&第三方插件

开发工具/环境

Visual Studio Code + PHPStorm + PhpStudy + Navicat Premium

  • Visual Studio Code:HTML&JS&CSS开发
  • DW : HTML&JS&CSS开发
  • PHPStorm : 专业PHP开发IDE
  • PhpStudy :Apache MYSQL环境
  • Navicat Premium: 全能数据库管理工具

注:以上软件自行寻找资源下载

数据库操作

数据创建

  • 打开Apache和MySQL

  • 创建一个数据库 库名是demo01

  • 案例中保存表名为gbook

    • 创建效果如图

数据库连接

  • 看是否连接成功可以加判断

出现空白数据

MYSQL增删改查

增:insert into 表名(`列名1`, `列名2`) value('列1值1', '列2值2');

  • 向单表插入单条数据
    • 向 students 表中插入一条数据:
    • INSERT INTO students (name, age, gender) VALUES ('张三', 20, '男');
  • 向单表插入多条数据
    • INSERT INTO students (name, age, gender) VALUES('李四', 21, '男'),('王五', 22, '女');
  • 从一个表插入数据到另一个表
    • INSERT INTO students_backup (name, age, gender)SELECT name, age, gender FROM students;

删:delete from 表名 where 列名 = '条件';

  • 从单表中删除单条记录
    • DELETE FROM students WHERE id = 1;
  • 从单表中删除多条记录
    • DELETE FROM students WHERE age > 25;
  • 使用 DELETE JOIN 删除关联表中的记录
    • DELETE orders, customers FROM orders JOIN customers ON orders.customer_id = customers.id WHERE customers.country = 'USA';

改:update 表名 set 列名 = 数据 where 列名 = '条件';

  • 修改单条记录
    • UPDATE employees SET salary = 5000.00 WHERE emp_id = 1;
  • 修改多条记录
    • UPDATE employees SET salary = salary * 1.1 WHERE dept_id = 2;
  • 使用 JOIN 修改关联表数据
    • UPDATE employees JOIN departments ON employees.dept_id = departments.dept_id SET employees.dept_id = 3 WHERE departments.dept_name = 'Sales';
  • 修改记录的多个字段
    • UPDATE employees SET emp_name = 'John Doe', salary = 6000.00 WHERE emp_id = 2;

  • 查:select * from 表名 where 列名='条件';

    • 单表查询案例

      • 查询 employees 表中所有员工的信息:select * from employees;
      • 查询 employees 表中薪资大于 5000 的员工姓名和薪资:select name, salary from employees where salary > 5000;
    • 多表查询案例

      • 查询 emp 表和 dept 表中部门编号匹配的员工姓名和部门名称:SELECT e.name, d.dept_name FROM emp e, dept d WHERE e.dept_id = d.id;
      • 查询 emp 表和 salgrade 表中员工薪资对应的薪资等级:SELECT e.name, e.salary, s.grade FROM emp e, salgrade s WHERE (e.salary >= s.losal AND e.salary <= s.hisal);
    • 子查询案例
      • 查询薪资最高的员工信息:SELECT * FROM employees WHERE salary = (SELECT MAX(salary) FROM employees);

PHP应用

PHP函数:连接,选择,执行,结果,关闭等

PHP常用函数

mysqli_connect()

  • 打开一个到MySQL的新的连接。

  • mysql_connect() 自 PHP 5.5.0 起已废弃,并在将来会被移除,应使用 MySQLi 或 PDO_MySQL 扩展来替换

  • 语法:mysqli_connect(host,username,password,dbname,port,socket);

    • 如:

mysqli_select_db()

  • 更改连接的默认数据库

  • mysqli_select_db() 函数用于指定一个默认的数据库,和 MySQL 命令中的 use dbname 功能相似

  • 语法:mysqli_select_db(connection,dbname);

mysqli_query()

  • 执行某个针对数据库的查询。

  • mysqli_query() 函数用于向 MySQL 服务器发送一条 SQL 查询。

    • mysqli_query() 函数执行 SELECT 查询

    • mysqli_query() 函数执行 INSERT 查询

    • mysqli_query() 函数执行 UPDATE 查询

    • mysqli_query() 函数执行 DELETE 查询

  • 语法:mysqli_query(connection,query,resultmode);

mysqli_fetch_row()

  • 函数从结果集中取得一行,并作为枚举数组返回。

  • 语法:mysqli_fetch_row(result);

mysqli_close()

超全局变量

  • $GLOBALS:这种全局变量用于在 PHP 脚本中的任意位置访问全局变量
  • $_SERVER:这种超全局变量保存关于报头、路径和脚本位置的信息。
  • _REQUEST:_REQUEST 用于收集 HTML 表单提交的数据。
  • $_POST:广泛用于收集提交method="post" 的HTML表单后的表单数据。
  • _GET:收集URL中的发送的数据。也可用于收集提交HTML表单数据(method="get") _FILES:文件上传且处理包含通过HTTP POST方法上传给当前脚本的文件内容。
  • $_ENV:是一个包含服务器端环境变量的数组。
  • $_COOKIE:是一个关联数组,包含通过cookie传递给当前脚本的内容。
  • $_SESSION:是一个关联数组,包含当前脚本中的所有session内容。
  • 参考:

html混编

  • HTML混编是指在HTML代码中嵌入其他编程语言(如PHP、JavaScript等)或使用特殊语法实现动态内容生成的技术。

案例:留言板

  • 留言板功能

    • 结果:

  • 代码快

    • 添加留言

      • 知识点:_SERVER['REMOTE_ADDR']和_SERVER['HTTP_USER_AGENT']
    • 显示留言

    • 注意

      • 定义了函数所以要调用
  • 配置文件

    • 涉及了包含函数

      • 解决代码混乱
        • 用包含函数 把配置内容单独写到一个文件
  • 删除功能

第三方插件

  • ueditor

    • 引用

  • 第三方组件安全问题

相关推荐
q***42051 小时前
PHP使用Redis实战实录2:Redis扩展方法和PHP连接Redis的多种方案
开发语言·redis·php
WayneJoon.H1 小时前
Java反序列化 CC7链分析
java·安全·网络安全·cc链·反序列化
chushiyunen1 小时前
redis命令 geo(对地理坐标的支持)
数据库·redis·缓存
baivfhpwxf20231 小时前
删除数据表SQL,不是删除数据,是删除表结构
数据库·sql
三七吃山漆1 小时前
攻防世界——easy_web
安全·网络安全·web·ctf
码界奇点2 小时前
深入解析MySQL6存储过程游标与触发器的实战应用与性能优化
数据库·sql·性能优化·七牛云存储
鸽鸽程序猿2 小时前
【Redis】List类型介绍
数据库·redis·list
帅中的小灰灰2 小时前
C++编程观察者设计模式
数据库·c++·设计模式
2501_941664962 小时前
云计算与边缘计算:新时代数字化转型的双轮驱动
数据库