MySQLのレコードをUPDATEするサンプルです。
サンプルソース
以下のようなテーブルを更新してみます。
項目名 | 型 | 制約 |
---|---|---|
ID | INT(3) | PK |
VAL1 | VARCHAR(50) | |
VAL2 | VARCHAR(50) |
例)MySQLをUPDATEする
<?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 = "ZZZZ";
//UPDATE処理
$sql = "UPDATE test SET VAL1 = :val1 WHERE ID = :id";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':id', $id, PDO::PARAM_STR);
$stmt->bindValue(':val1', $val1, PDO::PARAM_STR);
$stmt->execute();
//更新件数を取得して表示する
$updateCount = $stmt->rowCount();
print "更新件数 -> ".$updateCount;
//コミット
$conn->commit();
}catch(ErrorException $ex){
echo($ex->getMessage());
}catch(PDOException $ex){
echo($ex->getMessage());
}
備考
- bindValueに指定する値は変数である必要があります。
(例えば、上記20行目の$idを”AAA”みたいな固定値指定するのはダメです。)