PHP開發(fā) 小型論壇教程之?dāng)?shù)據(jù)庫搭建
創(chuàng)建數(shù)據(jù)庫
我們創(chuàng)建一個名為‘mybbs’數(shù)據(jù)庫
代碼如下
<?php header("Content-type:text/html;charset=utf-8"); //設(shè)置編碼 $servername = "localhost"; $username = "root"; $password = "root"; // 創(chuàng)建連接 $conn = mysqli_connect($servername, $username, $password); mysqli_set_charset($conn,'utf8'); //設(shè)定字符集 // 檢測連接 if (!$conn) { die("連接失敗: " . mysqli_connect_error()); } // 創(chuàng)建數(shù)據(jù)庫 $sql = "CREATE DATABASE mybbs"; if (mysqli_query($conn, $sql)) { echo "數(shù)據(jù)庫創(chuàng)建成功"; } else { echo "數(shù)據(jù)庫創(chuàng)建失敗: " . mysqli_error($conn); } mysqli_close($conn); ?>
然后建立我們的論壇版塊表‘forums’
這個表中存放的是我們都發(fā)布了那些論壇
字段名 | id | forum_name | forum_description ? ? ? ? | subject ? ? ? ? ? ? ? ? ? | last_post_time ? ? ?? |
字段類型 | INT | varchar | varchar | varchar | datetime? |
字段長度 | 6 | 50 | 200 | 50 | |
字段描述 | id | 論壇的名稱 | 論壇的簡介 | 論壇的主題 | 論壇的創(chuàng)建時間 |
代碼如下
<?php header("Content-type:text/html;charset=utf-8"); //設(shè)置編碼 $servername = "localhost"; $username = "root"; $password = "root"; $dbname = "mybbs"; // 創(chuàng)建連接 $conn = mysqli_connect($servername, $username, $password, $dbname); mysqli_set_charset($conn,'utf8'); //設(shè)定字符集 // 檢測連接 if (!$conn) { die("連接失敗: " . mysqli_connect_error()); } // 使用 sql 創(chuàng)建數(shù)據(jù)表 $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 "數(shù)據(jù)表 forums 創(chuàng)建成功"; } else { echo "創(chuàng)建數(shù)據(jù)表錯誤: " . mysqli_error($conn); } mysqli_close($conn); ?>
?創(chuàng)建我們的用戶表“member”表中存放我們的用戶,沒有的話是不允許發(fā)布論壇和帖子的,
字段名 | id | username | password ?? | email ? | log_time ? ? |
字段類型 | INT | varchar | varchar | varchar | datetime? |
字段長度 | 11 | 50 | 50 | 50 | |
字段描述 | 用戶ID | 注冊填寫的用戶名 | 注冊填寫的密碼 | 注冊填寫的郵箱 | 注冊時間 |
創(chuàng)建代碼如下
<?php header("Content-type:text/html;charset=utf-8"); //設(shè)置編碼 $servername = "localhost"; $username = "root"; $password = "root"; $dbname = "mybbs"; // 創(chuàng)建連接 $conn = mysqli_connect($servername, $username, $password, $dbname); mysqli_set_charset($conn,'utf8'); //設(shè)定字符集 // 檢測連接 if (!$conn) { die("連接失敗: " . mysqli_connect_error()); } // 使用 sql 創(chuàng)建數(shù)據(jù)表 $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 "數(shù)據(jù)表 member 創(chuàng)建成功"; } else { echo "創(chuàng)建數(shù)據(jù)表錯誤: " . mysqli_error($conn); } mysqli_close($conn); ?>
下面建立我們的帖子表 ‘tiopic’
‘tiopic ’存放的字段
author ? 發(fā)布帖子的作者
title ? ? ?帖子的標(biāo)題
content ? 帖子的內(nèi)容
last_post_time ? 帖子發(fā)布的時間
reply_author ? ? ?帖子的回復(fù)人
reply ? ? ? 帖子的回復(fù)內(nèi)容
reply_time ? 回復(fù)帖子的時間
代碼如下
<?php header("Content-type:text/html;charset=utf-8"); //設(shè)置編碼 $servername = "localhost"; $username = "root"; $password = "root"; $dbname = "mybbs"; // 創(chuàng)建連接 $conn = mysqli_connect($servername, $username, $password, $dbname); mysqli_set_charset($conn,'utf8'); //設(shè)定字符集 // 檢測連接 if (!$conn) { die("連接失敗: " . mysqli_connect_error()); } // 使用 sql 創(chuàng)建數(shù)據(jù)表 $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 "數(shù)據(jù)表 tiopic 創(chuàng)建成功"; } else { echo "創(chuàng)建數(shù)據(jù)表錯誤: " . mysqli_error($conn); } mysqli_close($conn); ?>
提示:本教程只是演示簡單的論壇原理,所以將發(fā)布帖子的的內(nèi)容與回復(fù)帖子的內(nèi)容放在了一起,真正完整的論壇回復(fù)需要用到PHP的遞歸,本教程是沒有用遞歸的,所以回復(fù)帖子的時候,新內(nèi)容會蓋掉之前的內(nèi)容,希望學(xué)習(xí)者學(xué)習(xí)完本課程之后做一個更為完善的論壇