社区交流系统设计与实现
社区交流系统设计与实现
1. 系统概述
社区交流系统是一个基于PHP和SQL的Web应用程序,旨在为用户提供一个互动交流的平台。该系统允许用户注册、发布帖子、回复帖子、查看其他用户的帖子和回复,以及管理个人资料,提高用户之间的互动和信息共享。
2. 技术栈
- 前端:HTML5, CSS3, JavaScript, jQuery, Bootstrap
- 后端:PHP
- 数据库:MySQL
- 服务器:Apache
3. 系统功能模块
-
用户管理
- 用户注册与登录
- 用户信息管理
- 用户角色管理(普通用户、管理员)
-
帖子管理
- 发布帖子
- 查看帖子
- 编辑帖子
- 删除帖子
-
回复管理
- 发布回复
- 查看回复
- 编辑回复
- 删除回复
-
个人资料管理
- 查看个人资料
- 修改个人资料
-
系统设置
- 数据备份与恢复
- 系统日志管理
- 参数配置
4. 数据库设计
4.1 数据库表结构
-
用户表(users)
id
(INT, 主键)username
(VARCHAR, 用户名)password
(VARCHAR, 密码)email
(VARCHAR, 邮箱)role
(VARCHAR, 角色)created_at
(DATETIME, 创建时间)updated_at
(DATETIME, 更新时间)
-
帖子表(posts)
id
(INT, 主键)user_id
(INT, 外键,关联用户表)title
(VARCHAR, 标题)content
(TEXT, 内容)created_at
(DATETIME, 创建时间)updated_at
(DATETIME, 更新时间)
-
回复表(replies)
id
(INT, 主键)user_id
(INT, 外键,关联用户表)post_id
(INT, 外键,关联帖子表)content
(TEXT, 内容)created_at
(DATETIME, 创建时间)updated_at
(DATETIME, 更新时间)
5. 系统架构设计
5.1 层次结构
-
表现层(Presentation Layer)
- 负责接收用户的请求,并返回处理结果。
- 使用PHP和HTML/CSS/JavaScript实现。
-
业务逻辑层(Business Logic Layer)
- 负责处理具体的业务逻辑。
- 使用PHP实现。
-
数据访问层(Data Access Layer)
- 负责与数据库交互,执行增删改查操作。
- 使用PHP的PDO扩展实现。
5.2 控制器(Controller)
控制器负责处理用户的请求,并调用相应的模型方法。示例如下:
<?php
session_start();// 连接数据库
$host = 'localhost';
$db = 'community_db';
$user = 'root';
$pass = '';try {$pdo = new PDO("mysql:host=$host;dbname=$db;charset=utf8", $user, $pass);$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {die("Could not connect to the database $db :" . $e->getMessage());
}// 用户登录
if (isset($_POST['login'])) {$username = $_POST['username'];$password = $_POST['password'];$stmt = $pdo->prepare("SELECT * FROM users WHERE username = :username AND password = :password");$stmt->execute(['username' => $username, 'password' => $password]);$user = $stmt->fetch();if ($user) {$_SESSION['user'] = $user;header('Location: index.php');} else {echo "Invalid username or password.";}
}
?>
5.3 模型(Model)
模型负责处理数据的存取操作。示例如下:
<?php
class Post {private $pdo;public function __construct($pdo) {$this->pdo = $pdo;}public function getAllPosts() {$stmt = $this->pdo->query("SELECT p.*, u.username FROM posts p JOIN users u ON p.user_id = u.id ORDER BY p.created_at DESC");return $stmt->fetchAll(PDO::FETCH_ASSOC);}public function addPost($user_id, $title, $content) {$stmt = $this->pdo->prepare("INSERT INTO posts (user_id, title, content) VALUES (:user_id, :title, :content)");$stmt->execute(['user_id' => $user_id, 'title' => $title, 'content' => $content]);}public function getPostById($id) {$stmt = $this->pdo->prepare("SELECT p.*, u.username FROM posts p JOIN users u ON p.user_id = u.id WHERE p.id = :id");$stmt->execute(['id' => $id]);return $stmt->fetch(PDO::FETCH_ASSOC);}public function deletePost($id) {$stmt = $this->pdo->prepare("DELETE FROM posts WHERE id = :id");$stmt->execute(['id' => $id]);}
}
?>
5.4 视图(View)
视图负责显示数据。示例如下:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>社区首页</title><link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
</head>
<body><div class="container"><h1>社区首页</h1><a href="create-post.php" class="btn btn-primary">发布帖子</a><hr><div class="row"><?php foreach ($posts as $post): ?><div class="col-md-6"><div class="card mb-4"><div class="card-body"><h5 class="card-title"><?php echo $post['title']; ?></h5><p class="card-text"><?php echo $post['content']; ?></p><p class="card-text"><small class="text-muted">作者: <?php echo $post['username']; ?> | 发布时间: <?php echo $post['created_at']; ?></small></p><a href="view-post.php?id=<?php echo $post['id']; ?>" class="btn btn-secondary">查看详情</a></div></div></div><?php endforeach; ?></div></div>
</body>
</html>
6. 功能实现
6.1 用户注册与登录
- 注册页面(register.php)
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>注册</title><link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
</head>
<body><div class="container"><h1>注册</h1><form action="register.php" method="post"><div class="form-group"><label for="username">用户名</label><input type="text" class="form-control" id="username" name="username" required></div><div class="form-group"><label for="password">密码</label><input type="password" class="form-control" id="password" name="password" required></div><div class="form-group"><label for="email">邮箱</label><input type="email" class="form-control" id="email" name="email" required></div><button type="submit" name="register" class="btn btn-primary">注册</button></form></div>
</body>
</html>
- 注册处理(register.php)
<?php
session_start();// 连接数据库
$host = 'localhost';
$db = 'community_db';
$user = 'root';
$pass = '';try {$pdo = new PDO("mysql:host=$host;dbname=$db;charset=utf8", $user, $pass);$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {die("Could not connect to the database $db :" . $e->getMessage());
}if (isset($_POST['register'])) {$username = $_POST['username'];$password = $_POST['password'];$email = $_POST['email'];$stmt = $pdo->prepare("INSERT INTO users (username, password, email) VALUES (:username, :password, :email)");$stmt->execute(['username' => $username, 'password' => $password, 'email' => $email]);echo "注册成功!";
}
?>
- 登录页面(login.php)
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>登录</title><link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
</head>
<body><div class="container"><h1>登录</h1><form action="login.php" method="post"><div class="form-group"><label for="username">用户名</label><input type="text" class="form-control" id="username" name="username" required></div><div class="form-group"><label for="password">密码</label><input type="password" class="form-control" id="password" name="password" required></div><button type="submit" name="login" class="btn btn-primary">登录</button></form></div>
</body>
</html>
- 登录处理(login.php)
<?php
session_start();// 连接数据库
$host = 'localhost';
$db = 'community_db';
$user = 'root';
$pass = '';try {$pdo = new PDO("mysql:host=$host;dbname=$db;charset=utf8", $user, $pass);$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {die("Could not connect to the database $db :" . $e->getMessage());
}if (isset($_POST['login'])) {$username = $_POST['username'];$password = $_POST['password'];$stmt = $pdo->prepare("SELECT * FROM users WHERE username = :username AND password = :password");$stmt->execute(['username' => $username, 'password' => $password]);$user = $stmt->fetch();if ($user) {$_SESSION['user'] = $user;header('Location: index.php');} else {echo "Invalid username or password.";}
}
?>
6.2 发布帖子
- 发布帖子页面(create-post.php)
<?php
session_start();if (!isset($_SESSION['user'])) {header('Location: login.php');exit;
}$pdo = new PDO("mysql:host=localhost;dbname=community_db;charset=utf8", "root", "");if (isset($_POST['submit'])) {$user_id = $_SESSION['user']['id'];$title = $_POST['title'];$content = $_POST['content'];$stmt = $pdo->prepare("INSERT INTO posts (user_id, title, content) VALUES (:user_id, :title, :content)");$stmt->execute(['user_id' => $user_id, 'title' => $title, 'content' => $content]);header('Location: index.php');
}
?>
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>发布帖子</title><link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
</head>
<body><div class="container"><h1>发布帖子</h1><form action="create-post.php" method="post"><div class="form-group"><label for="title">标题</label><input type="text" class="form-control" id="title" name="title" required></div><div class="form-group"><label for="content">内容</label><textarea class="form-control" id="content" name="content" rows="5" required></textarea></div><button type="submit" name="submit" class="btn btn-primary">发布</button></form></div>
</body>
</html>
6.3 查看帖子
- 查看帖子页面(view-post.php)
<?php
session_start();if (!isset($_SESSION['user'])) {header('Location: login.php');exit;
}$pdo = new PDO("mysql:host=localhost;dbname=community_db;charset=utf8", "root", "");
$post_id = $_GET['id'];$post = (new Post($pdo))->getPostById($post_id);$reply = new Reply($pdo);
$replies = $reply->getRepliesByPostId($post_id);
?>
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>帖子详情</title><link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
</head>
<body><div class="container"><h1><?php echo $post['title']; ?></h1><p><?php echo $post['content']; ?></p><p><small class="text-muted">作者: <?php echo $post['username']; ?> | 发布时间: <?php echo $post['created_at']; ?></small></p><hr><h3>回复</h3><div class="row"><?php foreach ($replies as $reply): ?><div class="col-md-12"><div class="card mb-4"><div class="card-body"><p class="card-text"><?php echo $reply['content']; ?></p><p class="card-text"><small class="text-muted">作者: <?php echo $reply['username']; ?> | 发布时间: <?php echo $reply['created_at']; ?></small></p></div></div></div><?php endforeach; ?></div><hr><h3>发表回复</h3><form action="add-reply.php" method="post"><input type="hidden" name="post_id" value="<?php echo $post_id; ?>"><div class="form-group"><label for="content">内容</label><textarea class="form-control" id="content" name="content" rows="5" required></textarea></div><button type="submit" name="submit" class="btn btn-primary">回复</button></form><a href="index.php" class="btn btn-secondary">返回</a></div>
</body>
</html>
7. 安全性设计
为了保证系统的安全性,需要实现以下功能:
- 用户认证:使用PHP会话管理进行用户认证和授权。
- 数据校验:在控制器层进行输入参数的校验,防止SQL注入等攻击。
- 日志记录:记录关键操作的日志,便于审计和故障排查。
8. 测试与部署
- 单元测试:使用PHPUnit进行单元测试,确保各个模块的功能正确。
- 集成测试:进行集成测试,确保各个模块之间的协同工作正常。
- 部署:将应用程序部署到Apache服务器上,确保在生产环境中运行稳定。
9. 源代码
由于篇幅限制,无法完整展示所有源代码。以下是部分核心代码示例:
9.1 回复实体类(Reply.php)
<?php
class Reply {private $pdo;public function __construct($pdo) {$this->pdo = $pdo;}public function getRepliesByPostId($post_id) {$stmt = $this->pdo->prepare("SELECT r.*, u.username FROM replies r JOIN users u ON r.user_id = u.id WHERE r.post_id = :post_id ORDER BY r.created_at DESC");$stmt->execute(['post_id' => $post_id]);return $stmt->fetchAll(PDO::FETCH_ASSOC);}public function addReply($user_id, $post_id, $content) {$stmt = $this->pdo->prepare("INSERT INTO replies (user_id, post_id, content) VALUES (:user_id, :post_id, :content)");$stmt->execute(['user_id' => $user_id, 'post_id' => $post_id, 'content' => $content]);}
}
?>
9.2 添加回复控制器(add-reply.php)
<?php
session_start();if (!isset($_SESSION['user'])) {header('Location: login.php');exit;
}$pdo = new PDO("mysql:host=localhost;dbname=community_db;charset=utf8", "root", "");if (isset($_POST['submit'])) {$user_id = $_SESSION['user']['id'];$post_id = $_POST['post_id'];$content = $_POST['content'];$reply = new Reply($pdo);$reply->addReply($user_id, $post_id, $content);header('Location: view-post.php?id=' . $post_id);
}
?>
相关文章:
社区交流系统设计与实现
社区交流系统设计与实现 1. 系统概述 社区交流系统是一个基于PHP和SQL的Web应用程序,旨在为用户提供一个互动交流的平台。该系统允许用户注册、发布帖子、回复帖子、查看其他用户的帖子和回复,以及管理个人资料,提高用户之间的互动和信息共享…...
【模型学习之路】手写+分析bert
手写分析bert 目录 前言 架构 embeddings Bertmodel 预训练任务 MLM NSP Bert 后话 netron可视化 code2flow可视化 fine tuning 前言 Attention is all you need! 读本文前,建议至少看懂【模型学习之路】手写分析Transformer-CSDN博客。 毕竟Bert是tr…...
Redis学习文档(常见面试题)
目录 Redis回收使用的是什么算法? Redis如何做大量数据插入? 为什么要做Redis分区? 你知道有哪些Redis分区实现方案? Redis分区有什么缺点? Redis持久化数据和缓存怎么做扩容? 分布式Redis是前期做还…...
【C++刷题】力扣-#594-最长和谐子序列
题目描述 和谐数组是指一个数组里元素的最大值和最小值之间的差别 正好是 1 。 给你一个整数数组 nums ,请你在所有可能的子序列中找到最长的和谐子序列的长度。 数组的 子序列是一个由数组派生出来的序列,它可以通过删除一些元素或不删除元素、且不改变…...
MoveIt 控制自己的真实机械臂【2】——编写 action server 端代码
完成了 MoveIt 这边 action client 的基本配置,MoveIt 理论上可以将规划好的 trajectory 以 action 的形式发布出来了,浅浅尝试一下,在 terminal 中运行 roslaunch xmate7_moveit_config_new demo.launch 报错提示他在等待 xmate_arm_control…...
C#制作学生管理系统
定义学生类 定义一个简单的类来表示学生,包括学号、姓名、性别、年龄、电话、地址。再给其添加一个方法利于后续添加方法查看学生信息。 //定义学生类 public class student {public int ID { get; set; }//开放读写权限public string Name { get; set; }public i…...
python Pandas合并(单元格、sheet、excel )
安装 Pandas 和 openpyxl 首先,确保已经安装了 Pandas 和 openpyxl。可以通过 pip 安装: pip install pandas openpyxl 创建 DataFrame import pandas as pd # 创建 DataFrame df1 pd.DataFrame({ 姓名: [张三, 李四, 王五], 年龄: [25, 30, 35]…...
OJ在线编程常见输入输出练习【JavaScript】
(注:本文是对【JavaScript Node 】 ACM模式,常见输入输出练习相关内容的介绍!!!) 牛客竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ 一、ACM模式下的编辑页面 二、ACM模式下&a…...
新能源汽车空调系统:绿色出行的舒适保障
在新能源汽车迅速发展的今天,空调系统作为提升驾乘舒适度的重要组成部分,发挥着不可或缺的作用。新能源汽车空调系统主要由压缩机、冷凝器、节流装置和蒸发器四大件组成,它们协同工作,为车内提供适宜的温度和湿度环境。 一、压缩…...
Date工具类详细汇总-Date日期相关方法
# 1024程序员节 | 征文 # 目录 简介 Date工具类单元测试 Date工具类 简介 本文章是个人总结实际工作中常用到的Date工具类,主要包含Java-jdk8以下版本的Date相关使用方法,可以方便的在工作中灵活的应用,在个人工作期间频繁使用这些时间的格…...
TMUX1308PWR规格书 数据手册 具有注入电流控制功能的 5V 双向 8:1单通道和 4:1 双通道多路复用器芯片
TMUX1308 和 TMUX1309 为通用互补金属氧化物半导体 (CMOS) 多路复用器 (MUX)。TMUX1308 是 8:1单通道(单端)多路复用器,而 TMUX1309 是 4:1 双通道(差分)多路复用器。这些器件可在源极 (Sx) 和漏极 (Dx) 引脚上支持从 …...
证件照怎么换底色?简单又快速!不看后悔
一、引言 证件照在我们的生活中有着广泛的应用,无论是求职、考试还是办理各种证件,都需要用到不同底色的证件照。传统的换底色方法往往比较复杂,需要一定的专业技能和软件操作经验。但是现在,有了更简单快捷的方法,让你…...
Rust 基础语法与常用特性
Rust 跨界:全面掌握跨平台应用开发 第一章:快速上手 Rust 1.2 基础语法与常用特性 1.2.1 数据类型与控制流 数据类型 Rust 提供了丰富的内置数据类型,主要分为标量类型和复合类型。 标量类型 标量类型表示单一的值,Rust 中…...
一、开发环境的搭建
环境搭建步骤: 下载软件安装软件运行软件 其他: Visual studio 安装包文件:https://www.alipan.com/s/nd5RgzD4e3b 下载软件 在浏览器中搜索Visual studio,选择如图的选项 点击该区域,进入该页面,【或…...
Docker:存储原理
Docker:存储原理 镜像联合文件系统overlay镜像存储结构容器存储结构 存储卷绑定挂载存储卷结构 镜像 联合文件系统 联合文件系统Union File System是一种分层,轻量且高效的文件系统。其将整个文件系统分为多个层,层与层之间进行覆盖&#x…...
ts:数组的常用方法(push、pop、shift、unshift、splice、slice)
前端css中filter的使用 一、主要内容说明二、例子(一)、push方法(尾添加)1.源码1 (push方法)2.源码1运行效果 (二)、pop方法(尾删除)1.源码2(pop方…...
物联网网关确保设备安全
物联网(IoT)网关在确保设备安全方面扮演着至关重要的角色。 作为连接物联网设备和云端或企业系统的中介,物联网网关可以实施多种安全措施来保护设备和数据。 是物联网网关确保设备安全的关键方法: 1. 设备认证和授权 认证&…...
Vue学习笔记(五)
Class绑定 数据绑定的一个常见需求场景式操纵元素的CSS class列表,因为class是attribute,我们可以和其他attribute一样使用v-bind将它们和动态的字符串绑定。但是,在处理比较复杂的绑定时,通过拼接生成字符串是麻烦且易出错的。因此…...
Nestjs返回格式小结
在 NestJS 中,除了 text/event-stream(用于 Server-Sent Events)之外,还有多种格式的返回方式,具体取决于你的应用需求。以下是一些常见的返回格式及其示例: 1. JSON 格式 Get(json) getJsonResponse(Res…...
【力扣刷题实战】相同的树
大家好,我是小卡皮巴拉 文章目录 目录 力扣题目: 相同的树 题目描述 示例 1: 示例 2: 示例 3: 解题思路 题目理解 算法选择 具体思路 解题要点 完整代码(C语言) 兄弟们共勉 &#…...
Golang | Leetcode Golang题解之第515题在每个树行中找最大值
题目: 题解: func largestValues(root *TreeNode) (ans []int) {if root nil {return}q : []*TreeNode{root}for len(q) > 0 {maxVal : math.MinInt32tmp : qq nilfor _, node : range tmp {maxVal max(maxVal, node.Val)if node.Left ! nil {q …...
Zookeeper 对于 Kafka 的作用是什么?
大家好,我是锋哥。今天分享关于【Zookeeper 对于 Kafka 的作用是什么?】面试题?希望对大家有帮助; Zookeeper 对于 Kafka 的作用是什么? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 ZooKeeper 在 Kafka…...
Thread类及线程的核心操作
一. Thread类的常见构造方法 1. Thread() Thread类无参的构造方法, 用于创建Thread类的实例对象. 2. Thread(String name) 带一个参数的Thread类构造方法, 创建一个线程对象, 并给其命名. [注]: 如果不专门给线程命名, 那么线程默认的名字就是Thread-0, Thread-1, Thread-…...
算法|牛客网华为机试11-20C++
牛客网华为机试 上篇:算法|牛客网华为机试1-10C 文章目录 HJ11 数字颠倒HJ12 字符串反转HJ13 句子逆序HJ14 字符串排序HJ15 求int型正整数在内存中存储时1的个数HJ16 购物单HJ17 坐标移动HJ18 识别有效的IP地址和掩码并进行分类统计HJ19 简单错误记录HJ20 密码验证…...
OpenAI低调发布多智能体工具Swarm:让多个智能体协同工作!
大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“外挂”,专注于分享AI全维度知识,包括但不限于AI科普,AI工…...
性能之光 年度电竞性能旗舰iQOO 13发布
2024年10月30日,被定义为“性能之光”的年度电竞性能旗舰——iQOO 13正式发布,售价3999元起。iQOO 13作为iQOO 品牌在性能上的又一次深入探索,它像是一束光,引领行业不断拉高性能上限,让用户看到更多的可能性。 iQOO …...
如何避免因不熟悉数据保护法规而受损
在当今数字化时代,数据保护法规的遵守对于企业至关重要。不熟悉新的数据保护法规会导致法律风险增加、财务损失、声誉受损、客户信任下降等多方面的负面影响。其中,法律风险增加尤为严重,因为不符合规定可能引发高额罚款和法律诉讼。企业若未…...
LLaMA Factory 核心原理讲解
大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于大模型算法的研究与应用。曾担任百度千帆大模型比赛、BPAA算法大赛评委,编写微软OpenAI考试认证指导手册。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。授权多项发明专利。对机器学…...
Java题集练习5
Java题集练习5(集合) 1.三种集合差别,集合类都是什么,数据结构是什么,都什么时候用 三者关系 Set集合 Set接口是Collection接口的一个子接口是无序的,set中不包含重复的元素,也就是说set中不…...
操作系统学习笔记-2.3哲学家和管程问题
哲学家问题 问题描述 假设有五位哲学家围坐在一张圆桌旁,每位哲学家面前放有一盘意大利面,他们各自间隔放置一根叉子。哲学家的行为分为“思考”和“进餐”两种状态。为了进餐,哲学家需要同时拿起左手边和右手边的两根叉子。用餐结束后&…...
做网站要排版吗/seo入口
内容主要来自《python科学计算》一书 双摆 初始角度为θ1\theta_1θ1与θ2\theta_2θ2,无质量杆长L1L_1L1与L2L_2L2,小球质量m1m_1m1与m2m_2m2 拉格朗日力学求解 建立坐标系 设小球的坐标为(x1,y1)(x_1,y_1)(x1,y1)与(x2,y2)(x_2,…...
山东天成水利建设有限公司网站/seo工资一般多少
如果你有一个苹果,我有一个苹果我们交换以后,还是一人一个苹果但如果你有一种思想,我有一种思想我们交换以后,每个人便拥有了两种思想; 转载于:https://www.cnblogs.com/JoinZhang/archive/2006/01/03/310096.html...
csdn 博客 wordpress/百度广告投放价格表
概述在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,我们还需要用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用上了索引,有没有…...
行业网站开发管理软件/如何进行网站推广?网站推广的基本手段有哪些
100佳精美的个性名片设计些列第四篇。名片,中国古代称名刺,是标示姓名及其所属组织、公司单位和联系方法的纸片。名片是新朋友互相认识、自我介绍的最快有效的方法。交换名片是商业交往的第一个标准官式动作。一起欣赏这些精美的个性名片。 61. REACTOR …...
自己怎么做百度网站/深圳网站seo推广
迎接县均衡化国家验收学校解说词办学条件组尊敬的各位专家、各位领导:欢迎莅临我校检查指导工作。我们宁津县第二实验小学始建于1997年,是一所县属非寄宿完全小学。当时只有北面这一座楼,29名教师。2012年秋季扩建,建成南面这座教…...
富阳做网站公司/网站优化塔山双喜
一、Bootstrap 卡片(面板) 1.1 简单的卡片 我们可以通过 Bootstrap4 的 .card 与 .card-body 类来创建一个简单的卡片,实例如下: <div class"container"><div class"card"><div class"card-body">简单的卡片</…...