【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)を行うにあるように例外処理を行うようにしてください。
あわせて読んでほしい!
コメント
まだコメントはありません。
コメントフォーム