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’

这个表中存放的是我们都发布了那些论坛

字段名idforum_name
forum_description        subject                  last_post_time       
字段类型INT
varchar
varchar
varchar
datetime 
字段长度65020050
字段描述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”表中存放我们的用户,没有的话是不允许发布论坛和帖子的,

字段名idusername
password   email  log_time    
字段类型INT
varchar
varchar
varchar
datetime 
字段长度11505050
字段描述用户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的递归,本教程是没有用递归的,所以回复帖子的时候,新内容会盖掉之前的内容,希望学习者学习完本课程之后做一个更为完善的论坛



继续学习
||
<?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); ?>
提交重置代码