MySQLにレコードをINSERTするサンプルです。
サンプルソース
こんなテーブルにレコードをINSERTしてみます。
項目名 | 型 | 制約 |
---|---|---|
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”みたいな固定値指定するのはダメです。)