English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
このチュートリアルでは、PHPを使用してMySQLテーブルのレコードを更新する方法を学びます。
UPDATEデータベーステーブルの既存レコードを変更または修正するためのステートメントです。このステートメントは、WHERE子句と組み合わせて使用されることが多く、特定の条件に一致するレコードのみに変更を適用します。
UPDATE语句的基本语法可以通过以下方式给出:
UPDATE table_name SET column1=value, column2=value2,... WHERE column_name=some_value
让我们使用UPDATE语句和WHERE子句进行一个SQL查询,然后通过将其传递给PHP mysqli_query()函数来执行此查询,以更新表记录。请考虑演示数据库中的以下persons表:
+----+------------+-----------+----------------------+ | id | first_name | last_name | email | +----+------------+-----------+----------------------+ | 1 | Peter | Parker | [email protected] | | 2 | John | Rambo | [email protected] | | 3 | Clark | Kent | [email protected] | | 4 | John | Carter | [email protected] | | 5 | Harry | Potter | [email protected] | +----+------------+-----------+----------------------+
以下のPHPコードは、personsテーブルのidが1のメールアドレス。
<?php /*MySQLサーバーへの接続を試みます。 MySQLを実行していることを仮定します。 デフォルト設定のサーバー(パスワードが無いユーザー「root」) */ $link = mysqli_connect("localhost", "root", "", "demo"); //接続を確認する if($link === false) { die("エラー:接続できません。\n" . mysqli_connect_error()); } //クエリの実行を試みます $sql = "UPDATE persons SET email='[email protected]' WHERE id=1''; if(mysqli_query($link, $sql)){ echo "レコードが成功して更新されました。"; } else { echo "エラー:$sqlを実行できません。\n" . mysqli_error($link); } //接続を閉じます mysqli_close($link); ?>
<?php /*MySQLサーバーへの接続を試みます。 MySQLを実行していることを仮定します。 デフォルト設定のサーバー(パスワードが無いユーザー「root」) */ $mysqli = new mysqli("localhost", "root", "", "demo"); //接続を確認する if($mysqli === false) { die("エラー:接続できません。\n" . $mysqli->connect_error); } //クエリの実行を試みます $sql = "UPDATE persons SET email='[email protected]' WHERE id=1''; if($mysqli->query($sql) === true) { echo "レコードが成功して更新されました。"; } else{ echo "エラー:$sqlを実行できません " . $mysqli->error; } //接続を閉じます $mysqli->close(); ?>
<?php /*MySQLサーバーへの接続を試みます。 MySQLを実行していることを仮定します。 デフォルト設定のサーバー(パスワードが無いユーザー「root」) */ try{ $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", ""); //PDOのエラーモードを例外に設定します $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e){ die("エラー:接続できません " . $e->getMessage()); } //クエリの実行を試みます try{ $sql = "UPDATE persons SET email='[email protected]' WHERE id=1''; $pdo->exec($sql); echo "レコードが成功して更新されました。"; } catch(PDOException $e){ die("エラー:$sqlを実行できません " . $e->getMessage()); } //接続を閉じます unset($pdo); ?>
更新後、personsテーブルは以下のようになります:
+----+------------+-----------+--------------------------+ | id | first_name | last_name | email | +----+------------+-----------+--------------------------+ | 1 | Peter | Parker | [email protected] | | 2 | John | Rambo | [email protected] | | 3 | Clark | Kent | [email protected] | | 4 | John | Carter | [email protected] | | 5 | Harry | Potter | [email protected] | +----+------------+-----------+--------------------------+
警告:UPDATE文のWHERE子句は、どのレコードを更新するかを指定します。WHERE子句を省略すると、すべてのレコードが更新されます。