0
0

More than 1 year has passed since last update.

formの値(連想配列)を受け取ってデータベース(MySQL)へ保存するまでの流れまとめ

Posted at

HTML、、ライブラリ取得用php、.env、使い回し用php、DB保存用phpを作成

HTML

formの項目ごとにdivタグで囲む。
labelタグのfor要素と、inputタグ等のname要素が紐付いている。
id要素は複数の値があるタグ(radioやselect)で個別化できる。
昔と違い、今はsubmitはbuttonタグがあって楽。

ライブラリ取得用php

使用するライブラリをPHP Composerが管理しており自動生成。
PHPファイルの冒頭でrequireして本ファイルを呼び出す。

環境変数を登録した.envファイル

DB接続情報が漏洩するとデータが盗まれてしまう。セキュリティのため、DB接続情報は環境変数化する。
PHPファイルでDB接続記述をする際、環境変数を記述するためDB接続情報の中身は見えない。

DB_HOST="mydb"
DB_USERNAME="myuserame"
DB_PASSWORD="mypassword"
DB_DATABASE="mydatabase"

使い回し用php

ライブラリをrequireし、環境変数に代入されたDB接続情報を取得。
使い回しできるようにするために外部ファイルになっている。

// 環境変数の取得
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__ . '/../..');
$dotenv->load();
// 取得した環境変数は、文字の冗長化を防ぐために単純な変数へ代入して使う
// 公式曰く、「$_ENV」でも「$_SERVER」でも良い。
$dbHost = $_ENV['DB_HOST'];
$dbUsername = $_SERVER['DB_USERNAME'];
$dbPassword = $_ENV['DB_PASSWORD'];
$dbDatabase = $_SERVER['DB_DATABASE'];
// mysqliを使う場合なら、以下のように記述してDBへ接続(あとの記述で使うため変数へ代入)
$dbInfo = mysqli_connect($dbHost, $dbUsername, $dbPass, $dbDatabase);

DB保存用php

使い回し用phpをrequire。

DBへ値を保存する関数(DB接続情報とDB保存用SQL文を取得)を作成。

formの値が正常ならDBへ値を保存し、DB切断する「実行文」を書く。

if文で、formの値が正常ならば($_SERVER['REQUEST_METHOD'] === 'POST')上記SQL文へ仕込む連想配列変数へ代入

// SQL文で使用するために値を連想配列へ代入
$categoryData = [
        'atai1' => $_POST['atai1'],
        'atai2' => $_POST['atai2']
    ];
// データベースに接続する
$dbInfo = dbConnect();
// データベースにデータを登録する
createCategory($dbInfo, $categoryData);
// データベースとの接続を切断する
mysqli_close($dbInfo);
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0