PHP データベース関連

[PHP] MySQLにレコードをINSERTする

2015年9月21日

MySQLにレコードをINSERTするサンプルです。

サンプルソース

こんなテーブルにレコードをINSERTしてみます。

【testテーブル】
項目名 制約
ID INT(3) PK
VAL1 VARCHAR(50)
VAL2 VARCHAR(50)

例)MySQLにINSERTするサンプル


<?php

 try{
   //DBコネクションを取得する
   $dsn = 'mysql:host=localhost;dbname=testdb;charset=utf8';
   $dbid = 'root';
   $dbpw = 'pass';
   $conn = new PDO($dsn, $dbid, $dbpw,
           array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));

   //トランザクションを開始する
   $conn->beginTransaction();

   //パラメータ値
   $id = "999";
   $val1 = "AAA";
   $val2 = "BBB";

   //INSERT処理
   $sql = "INSERT INTO test (ID, VAL1, VAL2) ";
   $sql .= "VALUES (:id, :val1, :val2)";
   $stmt = $conn->prepare($sql);
   $stmt->bindParam(':id', $id, PDO::PARAM_STR);
   $stmt->bindValue(':val1', $val1, PDO::PARAM_STR);
   $stmt->bindValue(':val2', $val2, PDO::PARAM_STR);
   $stmt->execute();

   //コミット実行
   $conn->commit();

   //メッセージ表示
   print "INSERTが正常に完了しました。";

 }catch (ErrorException $ex){
   echo($ex->getMessage());

 }catch (PDOException $ex){
   echo($ex->getMessage());
 }

備考

  • bindValueに指定する値は変数である必要があります。
    (例えば、上記23行目の$idを”AAA”みたいな固定値指定するのはダメです。)

関連記事

-PHP, データベース関連
-