【PHP】MySQLのレコードを更新する
公開日:
更新日:
カテゴリー: PHP
PHPからMySQLに接続して指定のレコードを更新する方法を説明します。
PHPからMySQLに接続して指定レコードを更新
PHPからMySQLへの接続・処理はPDOクラスを使用します。
PDOクラスの説明は【PHP】MySQLにレコードを挿入するで行っていますのでそちらを参照して下さい。
オブジェクトの作成
オブジェクトを作成します。
//PDOオブジェクトの作成
$pdo = new PDO("mysql:host=MySQLサーバのホスト名;dbname=データベース名;charset=utf8;", "データベース接続のID", "データベース接続のパスワード");
SQLの準備
次にSQLの準備を行います。
//SQLの準備
$st = $pdo->prepare("UPDATE テーブル名 SET 変更するフィールド名=? WHERE レコード検索用のフィールド=? ");
更新したいレコードがあるテーブルを「テーブル名」に指定します。
そして変更したいレコードのフィールドを「変更するフィールド名」に、レコード検索用のフィールドを「レコード検索用のフィールド」に指定します。
「?」はプレースホルダで、SQLの発行時に挿入します。
SQLの発行
そして最後にSQLの発行を行います。
//SQLの発行
$st->execute(array("○○○", "×××"));
 「○○○」は上の最初の「?」に、「×××」は2番目の「?」の部分に該当します。
レコードを更新するプログラム
MySQLのレコードを更新するサンプルプログラムを書いてみたいと思います。
環境の整理
説明用に「sample」というテーブルを作成し、以下のテーブルを作成したとします。
| id | name | group | 
|---|---|---|
| 1 | 中居正広 | SMAP | 
| 2 | 木村拓哉 | TOKIO | 
| 3 | 稲垣吾郎 | SMAP | 
| 4 | 草彅剛 | SMAP | 
| 5 | 香取慎吾 | SMAP | 
| 6 | 城島茂 | TOKIO | 
| 7 | 山口達也 | TOKIO | 
| 8 | 国分太一 | TOKIO | 
| 9 | 松岡昌宏 | TOKIO | 
| 10 | 長瀬智也 | TOKIO | 
レコードの更新
上の表に間違いがあります。それはキムタクの所属(グループ)です。
キムタクは「SMAP」に属しているのに「TOKIO」になっています。
以下ではこれを修正してみたいと思います。
//PDOオブジェクトの作成
$pdo = new PDO("mysql:host=MySQLサーバのホスト名;dbname=データベース名;charset=utf8;", "データベース接続のID", "データベース接続のパスワード");
//SQLの準備
$st = $pdo->prepare("UPDATE sample SET group=? WHERE name=? ");
//SQLの発行
$st->execute(array("SMAP", "木村拓哉"));
これを実行すればキムタクのグループは「SMAP」に更新されます。
なお、PDOでMySQLに接続する際には、【PHP】PDOでMySQLに接続する際、必ず例外処理(try,catch)を行うにあるように例外処理を行うようにしてください。
あわせて読んでほしい!
コメント
まだコメントはありません。
コメントフォーム
	


