このチュートリアルは、PHP/MySQL駆動のフォーラムをゼロから構築することをガイドします。 初心者がPHPとデータベースの相互作用を学ぶのに最適です
ステップ1:データベーステーブルの作成効果的なアプリケーション開発は、堅牢なデータモデルから始まります。 私たちのフォーラムには:
各正方形はテーブルを表し、列と関係をリストします。 各テーブルのSQLを調べてみましょう:
CREATE TABLE
(int、プライマリキー):各ユーザーを一意に識別します。 2人のユーザーが同じ
user_id
(varchar、unique):ユーザーのディスプレイ名。 ユニークでなければなりません。user_id
user_name
user_pass
user_email
、および外部キーは、テーブル間の関係を確立します。 あるテーブルの外部キーは、別のテーブルの主キーを参照し、データの整合性を確保します。 たとえば、topics
posts
categories
参考文献
topic_by
参考文献topics
user_id
users
inpost_topic
posts
topic_id
およびtopics
関連するテーブル間のデータの一貫性を確保します。 ユーザーを削除するときに偶発的なデータ損失を防ぎます。post_by
ステップ2:ヘッダー/フッターシステムposts
user_id
users
すべてのフォーラムページには、一貫した構造が必要です。
ON DELETE CASCADE
doctype宣言。ON UPDATE CASCADE
ON DELETE RESTRICT
charsetおよびメタタグ。
header.php
sha1()
を使用してパスワードハッシュを保護します。 パスワードをプレーンテキストに保存しないでください
パラメーター化されたクエリを使用したSQLインジェクション予防(mysqli_prepare()
mysqli_stmt_bind_param()
$_SESSION
ファイルは、簡単なSQLクエリを使用して
テーブルからカテゴリを取得および表示します。index.php
ステップ9:トピックの作成(create_topic.php)categories
認証チェックログインドユーザーのみがトピックを作成できることを確認してください。
ユーザーがトピックの詳細(件名、カテゴリ、メッセージ)を入力するフォーム。データの一貫性を維持するために、トランザクションを使用したデータベースの相互作用(
、mysqli_begin_transaction()
mysqli_query()
mysqli_commit()
このステップでは、個々のトピックとそれに関連する投稿を取得して表示する方法を説明しています。 mysqli_rollback()
テーブルとを使用しています。 ステップ11:トピックの返信(topic.php)
の表示
このセクションは、前のステップに基づいて構築され、ユーザー情報を含むトピック内の返信の表示を改善します。
LEFT JOIN
topics
ステップ12:返信の追加(Reply.php)posts
users
認証チェック。
ユーザーが返信を入力するフォーム。データベースインタラクション
テーブルに新しい投稿を挿入します。 この包括的なチュートリアルは、機能的なPHP/MySQLフォーラムを構築するための強固な基盤を提供します。 常にセキュリティとデータの整合性を優先することを忘れないでください
以上がPHP/MySQL搭載フォーラムをゼロから作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。