【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)を行うにあるように例外処理を行うようにしてください。

 

あわせて読んでほしい!

 

コメント

まだコメントはありません。

コメントフォーム
お名前
コメント