ホームページ >バックエンド開発 >PHPチュートリアル >シンプルなブログを作成する: PHP と SQLite を使用する
インターネットの発展に伴い、ブログはますます多くの人々が自分の生活、知識、アイデアを共有するためのプラットフォームになりました。自分のブログも作成したい場合は、この記事で PHP と SQLite を使用して簡単なブログを作成する方法を紹介します。
ブログの作成を開始する前に、実現したい機能を決定する必要があります。例:
ブログを作成するには、PHP と SQLite をインストールする必要があります。 。ここでは、PHP と SQLite が統合された XAMPP を使用します。 XAMPP は https://www.apachefriends.org/download.html からダウンロードできます。
ブログを作成する前に、ブログ投稿を管理するためのデータベースを作成する必要があります。 SQLite を使用してデータベースを作成できます。 XAMPP コントロール パネルで、Apache サービスと MySQL サービスを開始した後、phpMyAdmin を使用して SQLite データベースを作成できます。
phpMyAdmin で、「データベース」をクリックし、データベース名と文字セット (blog、utf8mb4_general_ci など) を入力し、「作成」ボタンをクリックしてデータベースを作成します。
データベースを作成した後、データベースを初期化する必要があります。ブログデータベースにテーブルを作成して、ブログ投稿情報を保存します。次の SQL ステートメントを使用できます:
CREATE TABLE IF NOT EXISTS `posts` ( `id` INTEGER PRIMARY KEY AUTOINCREMENT, `title` varchar(255) NOT NULL, `content` text, `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP );
この SQL ステートメントは、posts という名前のテーブルを作成します。このテーブルには、id、title、content、created_at の 4 つのフィールドが含まれます。このうち、id は主キーであり、自動インクリメントされます。title はタイトルであり、空にすることはできません。content はコンテンツであり、空にすることはできます。created_at は作成時刻であり、空にすることはできません。デフォルト値は現在の時刻。
これで、PHP コードの作成を開始できます。まず、index.php というファイルを作成します。このファイルでは、ブログ投稿のリストを表示できます。次の PHP コードを使用できます。
<?php $db = new SQLite3('blog.db'); $results = $db->query('SELECT * FROM posts ORDER BY created_at DESC'); while ($row = $results->fetchArray()) { ?> <article> <h2><a href="post.php?id=<?php echo $row['id']; ?>"><?php echo $row['title']; ?></a></h2> <p><?php echo $row['content']; ?></p> <time datetime="<?php echo $row['created_at']; ?>"><?php echo $row['created_at']; ?></time> </article> <?php } ?>
この PHP コードでは、SQLite3 拡張機能を使用して、前に作成した SQLite データベースに接続します。クエリ ステートメントを使用して、posts テーブル内のすべての記事を取得し、作成時間の降順に並べ替えます。次に、while ループを使用して、各記事のタイトル、内容、作成時刻を記事タグに入力します。タイトルにaタグを使用すると、タイトルから記事詳細ページにリンクします。
前のステップではブログ記事一覧の表示を作成しましたが、ブログ記事の表示も実装する必要があります。詳細ページ。 post.php というファイルを作成して、1 つのブログ投稿の詳細を表示できます。
<?php $id = intval($_GET['id']); $db = new SQLite3('blog.db'); $stmt = $db->prepare('SELECT * FROM posts WHERE id=:id'); $stmt->bindParam(':id', $id, SQLITE3_INTEGER); $result = $stmt->execute(); $row = $result->fetchArray(); ?> <article> <h2><?php echo $row['title']; ?></h2> <p><?php echo $row['content']; ?></p> <time datetime="<?php echo $row['created_at']; ?>"><?php echo $row['created_at']; ?></time> </article>
この PHP コードは、post.php ページから渡された記事 ID を取得し、クエリ ステートメントを使用して指定された ID の記事情報を取得し、記事のタイトル、内容、作成時刻を表示します。鬼ごっこ。
これでブログ記事一覧と詳細ページの表示は実装できましたが、作成機能も実装する必要があります。 、ブログ記事の編集、削除機能。これを実現するには、次のコードを使用します。
記事の作成:
<?php if ($_SERVER['REQUEST_METHOD'] == 'POST') { $title = $_POST['title']; $content = $_POST['content']; $db = new SQLite3('blog.db'); $stmt = $db->prepare('INSERT INTO posts(title, content) VALUES(:title, :content)'); $stmt->bindParam(':title', $title, SQLITE3_STRING); $stmt->bindParam(':content', $content, SQLITE3_TEXT); $stmt->execute(); header('Location: index.php'); exit(); } ?> <form method="POST" action=""> <div> <label>Title</label> <input type="text" name="title" /> </div> <div> <label>Content</label> <textarea name="content"></textarea> </div> <div> <button type="submit">Create</button> </div> </form>
記事の編集:
<?php $id = intval($_GET['id']); if ($_SERVER['REQUEST_METHOD'] == 'POST') { $title = $_POST['title']; $content = $_POST['content']; $db = new SQLite3('blog.db'); $stmt = $db->prepare('UPDATE posts SET title=:title, content=:content WHERE id=:id'); $stmt->bindParam(':title', $title, SQLITE3_STRING); $stmt->bindParam(':content', $content, SQLITE3_TEXT); $stmt->bindParam(':id', $id, SQLITE3_INTEGER); $stmt->execute(); header('Location: post.php?id=' . $id); exit(); } $db = new SQLite3('blog.db'); $stmt = $db->prepare('SELECT * FROM posts WHERE id=:id'); $stmt->bindParam(':id', $id, SQLITE3_INTEGER); $result = $stmt->execute(); $row = $result->fetchArray(); ?> <form method="POST" action=""> <div> <label>Title</label> <input type="text" name="title" value="<?php echo $row['title']; ?>" /> </div> <div> <label>Content</label> <textarea name="content"><?php echo $row['content']; ?></textarea> </div> <div> <button type="submit">Save</button> </div> </form>
記事の削除:
<?php $id = intval($_GET['id']); if ($_SERVER['REQUEST_METHOD'] == 'POST') { $db = new SQLite3('blog.db'); $stmt = $db->prepare('DELETE FROM posts WHERE id=:id'); $stmt->bindParam(':id', $id, SQLITE3_INTEGER); $stmt->execute(); header('Location: index.php'); exit(); } $db = new SQLite3('blog.db'); $stmt = $db->prepare('SELECT * FROM posts WHERE id=:id'); $stmt->bindParam(':id', $id, SQLITE3_INTEGER); $result = $stmt->execute(); $row = $result->fetchArray(); ?> <p>Are you sure you want to delete "<?php echo $row['title']; ?>"?</p> <form method="POST" action=""> <button type="submit">Delete</button> <a href="post.php?id=<?php echo $id; ?>">Cancel</a> </form>
<?php if ($_SERVER['PHP_AUTH_USER'] != 'admin' || $_SERVER['PHP_AUTH_PW'] != 'password') { header('WWW-Authenticate: Basic realm="My Blog"'); header('HTTP/1.0 401 Unauthorized'); echo 'You must be authorized to access this page.'; exit(); } ?>このコードを、権限制御が必要なページの先頭に配置します。このコードは、HTTP ヘッダーのユーザー名とパスワードが正しいかどうかをチェックし、間違っている場合は、401 Unauthorized ステータス コードを返し、ユーザーに再ログインを求めるログイン ボックスをポップアップ表示します。 これまで、簡単なブログを作成してきました。この例を通じて、PHP と SQLite の基本的な使用法と、PHP を使用して簡単なアプリケーションを実装する方法を理解できます。 PHP についてさらに詳しく知りたい場合は、PHP 公式ドキュメントと PHP オンライン チュートリアルを参照してください。
以上がシンプルなブログを作成する: PHP と SQLite を使用するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。