PHP开发 小型论坛教程之数据库搭建
创建数据库
我们创建一个名为‘mybbs’数据库
代码如下
<?php header("Content-type:text/html;charset=utf-8"); //设置编码 $servername = "localhost"; $username = "root"; $password = "root"; // 创建连接 $conn = mysqli_connect($servername, $username, $password); mysqli_set_charset($conn,'utf8'); //设定字符集 // 检测连接 if (!$conn) { die("连接失败: " . mysqli_connect_error()); } // 创建数据库 $sql = "CREATE DATABASE mybbs"; if (mysqli_query($conn, $sql)) { echo "数据库创建成功"; } else { echo "数据库创建失败: " . mysqli_error($conn); } mysqli_close($conn); ?>
然后建立我们的论坛版块表‘forums’
这个表中存放的是我们都发布了那些论坛
字段名 | id | forum_name | forum_description | subject | last_post_time |
字段类型 | INT | varchar | varchar | varchar | datetime |
字段长度 | 6 | 50 | 200 | 50 | |
字段描述 | id | 论坛的名称 | 论坛的简介 | 论坛的主题 | 论坛的创建时间 |
代码如下
<?php header("Content-type:text/html;charset=utf-8"); //设置编码 $servername = "localhost"; $username = "root"; $password = "root"; $dbname = "mybbs"; // 创建连接 $conn = mysqli_connect($servername, $username, $password, $dbname); mysqli_set_charset($conn,'utf8'); //设定字符集 // 检测连接 if (!$conn) { die("连接失败: " . mysqli_connect_error()); } // 使用 sql 创建数据表 $sql = "CREATE TABLE forums ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, `forum_name` varchar(50) NOT NULL, `forum_description` varchar(200) NOT NULL, `subject` varchar(50) NOT NULL, `last_post_time` datetime NOT NULL );"; if (mysqli_query($conn, $sql)) { echo "数据表 forums 创建成功"; } else { echo "创建数据表错误: " . mysqli_error($conn); } mysqli_close($conn); ?>
创建我们的用户表“member”表中存放我们的用户,没有的话是不允许发布论坛和帖子的,
字段名 | id | username | password | log_time | |
字段类型 | INT | varchar | varchar | varchar | datetime |
字段长度 | 11 | 50 | 50 | 50 | |
字段描述 | 用户ID | 注册填写的用户名 | 注册填写的密码 | 注册填写的邮箱 | 注册时间 |
创建代码如下
<?php header("Content-type:text/html;charset=utf-8"); //设置编码 $servername = "localhost"; $username = "root"; $password = "root"; $dbname = "mybbs"; // 创建连接 $conn = mysqli_connect($servername, $username, $password, $dbname); mysqli_set_charset($conn,'utf8'); //设定字符集 // 检测连接 if (!$conn) { die("连接失败: " . mysqli_connect_error()); } // 使用 sql 创建数据表 $sql = "CREATE TABLE member ( id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY, `username` varchar(50) NOT NULL, `password` varchar(50) NOT NULL, `email` varchar(50) NOT NULL, `log_time` datetime NOT NULL );"; if (mysqli_query($conn, $sql)) { echo "数据表 member 创建成功"; } else { echo "创建数据表错误: " . mysqli_error($conn); } mysqli_close($conn); ?>
下面建立我们的帖子表 ‘tiopic’
‘tiopic ’存放的字段
author 发布帖子的作者
title 帖子的标题
content 帖子的内容
last_post_time 帖子发布的时间
reply_author 帖子的回复人
reply 帖子的回复内容
reply_time 回复帖子的时间
代码如下
<?php header("Content-type:text/html;charset=utf-8"); //设置编码 $servername = "localhost"; $username = "root"; $password = "root"; $dbname = "mybbs"; // 创建连接 $conn = mysqli_connect($servername, $username, $password, $dbname); mysqli_set_charset($conn,'utf8'); //设定字符集 // 检测连接 if (!$conn) { die("连接失败: " . mysqli_connect_error()); } // 使用 sql 创建数据表 $sql = "CREATE TABLE tiopic ( id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY, `author` varchar(50) NOT NULL, `title` varchar(100) NOT NULL, `content` text NOT NULL, `last_post_time` datetime NOT NULL, `reply_author` varchar(50) DEFAULT NULL, `reply` text, `reply_time` datetime DEFAULT NULL );"; if (mysqli_query($conn, $sql)) { echo "数据表 tiopic 创建成功"; } else { echo "创建数据表错误: " . mysqli_error($conn); } mysqli_close($conn); ?>
提示:本教程只是演示简单的论坛原理,所以将发布帖子的的内容与回复帖子的内容放在了一起,真正完整的论坛回复需要用到PHP的递归,本教程是没有用递归的,所以回复帖子的时候,新内容会盖掉之前的内容,希望学习者学习完本课程之后做一个更为完善的论坛