機能概要

ニュース(お知らせ)に新規投稿するため、SQLを利用してデータベースに登録する。

プログラミングコード

「newsAdd.php」お知らせ新規登録ページファイル

データベースにニュース情報を登録(投稿)します。また、テーブルのseq_no(連番)は、auto_increment(自動採番)となっています。

ニューステーブル(news_tbl)の構造はこちら

  • 4行目:「config.php」を読み込み、その中の変数情報を使用することができるようになります。
  • 6行目:「POST」の場合のみ、処理を行うための分岐処理です。
  • 9行目/10行目:「POST」を利用し「ページ内のテキストボックス」からデータを受け取り、変数に代入しています。
  • 23~48行目:SQL文を利用し、「news_tbl」に値を登録しています。
  • 58行目:「formタグ」のプロパティを設定します。
    • action:ファイル名やURL
    • method:POSTを入力(※その他、GETも利用可)
<?php

//データベース接続情報を格納
include("config.php");

if($_SERVER['REQUEST_METHOD'] === 'POST'){

    //POSTデータの取得
    $txt_title_kj = $_POST['txt_title_kj'];
    $txt_article_kj = $_POST['txt_article_kj'];

    $err = "";

    if($txt_title_kj == ""){
        $err .= "【件名】";
    }
    if($txt_article_kj == ""){
        $err .= "【内容】";
    }

    if($err == ""){

        $sql = "insert into news_tbl("
                ."title_kj"
                .",article_kj"
                .",delete_ku"
                .",insert_at"
                .",update_at"
                .") values ("
                .":title_kj"
                .",:article_kj"
                .",'0'"
                .",now()"
                .",now()"
                .");";
        $dbh = new PDO($dsn, $user, $password);
        $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

        try{
            $stmt = $dbh->prepare($sql);
            $stmt->bindValue(':title_kj', $txt_title_kj, PDO::PARAM_STR);
            $stmt->bindValue(':article_kj', $txt_article_kj, PDO::PARAM_STR);
            $stmt->execute();

            header("Location:newslist.php");
        } catch(Exception $e){
            echo "データの書き込みに失敗しました。". $e->getMessage();
        }
    }else{
        echo $err."を修正してください。";
    }
}
?>

<html>
<body>
<h1>ニュース登録</h1>
<form action="newsAdd.php" method="POST">
    件名<br>
    <input type="text" name="txt_title_kj" /><br>
    内容<br>
    <textarea name="txt_article_kj" style="width:300px;height:150px;"></textarea><br>
    <input type="submit" value="投稿">
</form>
</body>
</html>

演習問題

  1. 上記のコードを使用して、ファイル作成し、動作するようにしてみよう。
  2. データベースやテーブルを変更し、違う情報を利用して、動作するようにしてみよう。