PHP-DB - 6. レコードの更新
続いて update
文の実行方法について取り上げます。次のプログラム( pdo4.php
)を作成します。
<?php
$dsn = "mysql:host=localhost;dbname=eldb;charset=utf8mb4";
$username = "root";
$password = "admin";
$pdo = new PDO($dsn, $username, $password);
$sql = "update categories set title = 'Camera' where id = 4";
$count = $pdo->exec($sql);
echo "Count: $count" . PHP_EOL;
update
文を実行する場合も、 insert
文を実行する場合と同様に PDO
クラスの exec
メソッドを使います。
それではターミナルからプログラムを実行してみましょう。
$ php pdo4.php
Count: 1
実行結果から update
文による更新件数である 1
が出力されているのがわかります。
参考:実行結果の確認
データベースのレコードが更新されているかどうかを確認してみましょう。 MySQL
上で categories
テーブルのレコードを検索します。
MariaDB [eldb]> select * from categories order by id;
+----+-------------+
| id | title |
+----+-------------+
| 1 | Programming |
| 2 | Design |
| 3 | Marketing |
| 4 | Camera |
+----+-------------+
4 rows in set (0.00 sec)
MariaDB [eldb]>
あるいは以前に作成したプログラム( pdo2.php
)を実行しても良いでしょう。
$ php pdo2.php
1:Programming
2:Design
3:Marketing
4:Camera
まとめ
PDO
インスタンスのexec
メソッドによってupdate
文を実行するexec
メソッドは戻り値に更新件数を返却するexec
メソッドの戻り値にテーブルのレコードは含まれない点に注意する