PHPでMariaDBにフォームのデータをインサートする

さて、朝の時間を使って会員登録機能を実装しよう!のコーナがやってきました。前回は、phpからdbへのデータのインサート前までやりましたね。今回は、データをインサートし終えたところまでやりました。ヤッタネ!!!データをDBに登録する変数の部分 $_POST["name"]をクオーテーションで囲ってもダブルクオーテーションで囲っても、うまくいきませんでした。

次やること

データベースにデータを登録できたから、このphpの実装のロジックは概ね終わったってわけ。だから、次は、ログインページをphpでまた作ることにする。んで、ログインボタンを押したら、dbの中に入力情報があるか比較する。あれば会員ページに飛んで、なければエラーページに飛ばすか、そのページをリロードさせて、アラート的なものを表示させる。

 

実装

<!DOCTYPE html>
<html lang="ja">

<head>
<meta charset="utf-8">
<title>会員登録</title>
</head>

<body>
<?php
    echo "登録情報をご確認ください<br />";
    echo "-------------";
    echo "<br />";
    echo "<br />";

    echo $_POST["name"];
        echo "<br />";
        echo $_POST["mail"];
    echo "<br />";                                                                                                                                         
        echo $_POST["password"];

$dsn = 'サーバーの接続情報';
$user = 'UserMai';
$password = 'password';

try{
    $dbh = new PDO($dsn, $user, $password);
    echo('接続に成功しました。<br>');

   # $dbh->query('SET NAMES utf8');
   # $sql = 'select * from user';
   # foreach ($dbh->query($sql) as $row) {
   #     print($row['id']);
   #     print($row['name'].'<br>');


 #データをデータベースにインサートしている
 # = $pdo -> prepare("INSERT INTO UserName (name) VALUES (:name)");

 // INSERT文を変数に格納
 $sql = "INSERT INTO UserName (name) VALUES (:name)";

 // 挿入する値は空のまま、SQL実行の準備をする
 $stmt = $dbh->prepare($sql);

    // 挿入する値を配列に格納する
    $params = array(':name' => $_POST["name"]);

  // 挿入する値が入った変数をexecuteにセットしてSQLを実行
    $stmt->execute($params);

  // 登録完了のメッセージ
    echo '登録完了しました';

 #挿入されたデータをブラウザに表示する
 #エラーが出た場合は、どこを見ればいいんだろう

}catch (PDOException $e){
    print('Error:'.$e->getMessage());
    die();
}
?>

</body>
</html>

db確認

SELECT * FROM UserName;
+----------------+
| name           |
+----------------+
| Aoki           |
| 綾瀬         |
| $_POST["name"] |
| Yamada         |
| Akanishi       |
+----------------+
5 rows in set (0.00 sec)


実行確認

出来てるね!!

スクリーンショット 2017-06-17 8.14.18.png

藤沢瞭介(Ryosuke Hujisawa)
  • りょすけと申します。18歳からプログラミングをはじめ、今はフロントエンドでReactを書いたり、AIの勉強を頑張っています。off.tokyoでは、ハイテクやガジェット、それからプログラミングに関する情報まで、エンジニアに役立つ情報を日々発信しています!

未整理記事