LoginSignup
3
2

More than 1 year has passed since last update.

ブログ投稿機能作成 新規データの登録 PHP

Posted at

■新規データの登録の流れ

①フォームから値を渡す。
②フォームから値を受け取る。
③バリデーションする。
④トランザクションを開始
⑤データをDBに登録する。

■① フォームから値を渡す。

htmlのフォーム等から登録したい値を渡す。

//action='値を渡すファイル名' method="渡し方送信するのでPOST"
<form action='URL' method='POST'>
  //name='受け取るファイルで使う共通の呼び方'
  <input type='text' name='title'>
  <textarea name="content" id="content" cols="30" rows="10"></textarea>
  <input type='submit' value='送信'>
</form>

■② フォームから値を受け取る。

受け取るファイルでPOSTで受け取る。

//例 blog_create.php
<?php $blogs= $_POST;?>

■③バリデーションする。

簡単に言うと入力もれがないかのチェック作業
ブログの本文書いてなかったりタイトル書いてなかったり必要事項が書いてないよと投稿者に教えてあげる。

下記ではif文を使っているがもっと簡単にまとめて書く方法もある。

if(empty($blogs['title'])) {
 exit('タイトルがありません。');
}

if(empty($blogs['content'])) {
 exit('本文がありません。');
}

■④トランザクション ⑤実行

データの整合性のチェック
うまくデータが入力されていて
登録前と登録後の整合性に差異がないかチェックする。

//トランザクションを始める。
$dbh->beginTransaction();
//整合性バッチリ実行しよか!
$dbh->commit();
//整合性に差異がでてる。もどそか
$dbh->rollBack();

▼下記実際トランザクションの使い方。

$sql = 'SELECT INTO blog(title,content) VALUES(:title,:content)';
//$dbh はrequire_once('データ接続の関数が書いてるファイル名');で関数をデータ接続の関数を持ってきている。
$dbh = dbConnect();
//トランザクションを始めよう!
$dbh->beginTransaction();
try {
  $stmt = $dbh->prepara(':title','$blogs['title']',PDO**PARAM_STR);
  $stmt = $dbh->prepara(':content','$blogs['content']',PDO**PARAM_STR);
  $stmt->execute();
  //トランザクションをcommitしてる。
  $$dbh->commit();
} catch(PDOException $e) {
  exit($e);
  //なんかちゃういったん戻ろか。
  $dbh->rollBack();
}

このあらゆるチェックの流れでデータを登録する。

3
2
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
3
2