phpsql_メモを追加する

05メモを追加する

では新たにindex.phpと同じ階層に「insert.php」を作成してください。

memo_php
├── css
│   └── style.css
├── index.php
├── insert.php
├── select.php
└── dbConnection.php

作成できたら以下のコードをコピーしましょう。

insert.php

<?php
    //コメントの内容をDBに追加する
    if (isset($_POST["body"])) {

        $body = $_POST["body"];
        $date = date("Y/m/d H:i:s");

        /*sql文*/
        $sql = "INSERT INTO memo(
            body, date
        )VALUES(
            '$body', '$date'
        )";

        /*bindValue関数でバインドする*/
        $result = $dbh->prepare($sql);
        $result->execute();
    }

index.php

<?php
    include './dbConnection.php';
		// ここに追加
    include './insert.php';
    include './select.php';

index.phpにある下記部分を修正

<body>
    <div class="container">
        <div class="memo_area">
            <div class="memo_form">
                <h2>メモを追加</h2>
                <form method="post" action="index.php">
                    // nameにbodyを追加
                    <input class="memo_text" type="text" name="body">
                    <input type="submit" value="追加">
                </form>
            </div>

追加できたら画面を読み込んで、実際に何かメモを追加してみましょう。

追加したメモが表示されていたらOKです。

表示されない場合は追加したコードをもう一度確認してみましょう。

ではコードの解説です。

if (isset($_POST["body"]))まずはこの部分ですが、name属性が「body」である要素がPOSTされたときにtrueになるようになっています。

もう少し丁寧に説明します。

$_POSTはPOST通信のデータを受け取ることができます。今回は、index.phpで<form method="post" action="index.php">とmethod=”post”でPOST通信を指定しています。

追加ボタンが押されると、<form></form>の中のinputタグの情報が送信されます。

今回のinputは<input class="memo_text" type="text" name="body">のみです。

inputタグの情報は$_POST[”name属性の名前”]で取得できます。

isset()は引数が空かどうかを判別します。

今回は$_POST[”body”]が空かどうかを判別しています。

空の時は、情報が送信されていない時です。つまり画面が読み込まれたり、削除ボタンが押されたときなどです。

追加ボタンが押された時のみisset()はtrueになります。

$body = $_POST["body"];
$date = date("Y/m/d H:i:s");

続いてこの部分ですが、$_POST["body"]でメモ追加テキストボックスの情報を取得し、$bodyに格納しています。

次にdate("Y/m/d H:i:s")で現在の時間を取得しています。

最後に、

$sql = "INSERT INTO memo( body, date )VALUES( '$body', '$date' )";

この部分です。

メモの情報をDBに追加するSQL文です。

SQLのレッスンで解説しているためここでは詳しく解説しません。

最後にこの部分ですが、先ほど作成した$sqlを実行しています。

/*bindValue関数でバインドする*/
$result = $dbh->prepare($sql);
$result->execute();

$result = $dbh->prepare($sql);ですが、SQL文を**prepare()**にセットし、SQL実行のための準備を行っています。

そして、$result->execute();でSQLを実行しています。

ここはあまり深く考えず、SQLを実行するにはこの2行が必要なんだ、くらいに思っておいてください。

Git

// 前のcommitからの差分を確認
git diff

git add .

git commit -m "追加"

投稿日

カテゴリー:

投稿者:

タグ:

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です