<?php
session_start();
if (empty($_SESSION)) {exit;}
- セッションに値がないときは処理をやめさせる。トリプルチェック。
$user = 'root';
$pass = '';
$dsn = 'mysql:host=localhost;dbname=guestbook;charset=utf8';
- dsn=data source name
- mysql:→データベース管理システム=データベース
- host=localhost;→データベースのサーバー名
- dbname=guestbook;→データベース名
- charset=utf8';→データベースの文字エンコード
- PDOclassのインスタンス化に必要な引数をすべて変数化。
$conn = new PDO($dsn, $user, $pass);
$m_name = $_SESSION['your_name']
$m_mail = $_SESSION['email']
$m_message =$_SESSION['comment']
- 入力内容の取得($_SESSIONから)
$sql = 'INSERT INTO message(m_name, m_mail, m_message, m_dt)
VALUES(:m_name, :m_mail, :m_message, NOW())';
- 「message」 テーブルにある、(これらのカラム)にVALUE以下の値を挿入しなさい。
- データの追加
- 「:」テンプレートパラメーター。仮パラメーターの接頭辞。PHPでは仮参照。とりあえず名前にしている。
$stmt = $conn->prepare($sql);
$stmt->bindParam(':m_name', $m_name);
$stmt->bindParam(':m_mail', $m_mail);
$stmt->bindParam(':m_message', $m_message);
$stmt->execute();
- $stmt stands for "statement"
- インスタンス化されたPDOclassのprepare methodを代入する
- prepare methodの中にあるbindParamメソッドを呼び出す
$error = $stmt->errorInfo();
if ($error[0] != '00000') {
$message = 'データの追加に失敗しました。' . $error[2];
} else {
$message = 'データを追加しました。データ番号:' . $conn->lastInsertId();
}
?>