PHP アプリケーションでは、データベースの変更を必要とする操作が一般的な要件の 1 つです。 PHP データ オブジェクト (PDO) は、リレーショナル データベースを安全かつ効率的に操作する方法を提供します。
この記事では、PDO 拡張機能を使用して MySQL データベースに接続する方法を紹介し、例を通して PDO を使用してデータベース データを変更する方法を示します。
MySQL データベースへの接続
PDO を使用する前に、まずデータベースに接続する必要があります。以下は、MySQL データベースに接続するためのサンプル コードです。
//数据库连接参数 $host = 'localhost'; $dbname = 'test'; $username = 'root'; $password = ''; //连接数据库 try { $db = new PDO("mysql:host=$host;dbname=$dbname", $username, $password); } catch(PDOException $e) { echo $e->getMessage(); }
上記のコードでは、PDO クラスのコンストラクターを介してデータベースに接続します。まず、MySQL データベースのホスト名とデータベース名を指定し、次にユーザー名とパスワードを渡して接続します。
データベース データの変更
接続が成功したら、PDO を使用してデータベース データを変更する方法を見てみましょう。 ID、名前、年齢フィールドを含む学生テーブルがあると仮定します。次に、PDO を使用してこのテーブルのデータを変更する方法を示します。
PDO の prepare() 関数を使用して、変更操作を実行できます。以下は、student テーブルの ID 1 のレコードを更新するコード例です。
//更新数据 $id = 1; $newName = 'Tom'; $sql = "UPDATE student SET name=:name WHERE id=:id"; $stmt = $db->prepare($sql); $stmt->bindParam(':id', $id, PDO::PARAM_INT); $stmt->bindParam(':name', $newName, PDO::PARAM_STR); $stmt->execute();
上記のコードでは、まず、更新するレコードの ID と新しい名前の値を定義します。次に、UPDATE ステートメントを使用して name を $newName に更新します。ここで、:id と :name はプレースホルダーです。次に、PDO の prepare() 関数を使用して SQL ステートメントを準備し、bindParam() 関数を通じて $id と $newName の値をバインドします。最後に、execute() 関数を呼び出して更新操作を実行します。
複数のフィールドを更新したい場合は、上記と同様の方法を使用できます。以下は、student テーブルの ID 1 を持つレコードの名前と年齢フィールドを更新するコード例です。
//更新数据 $id = 1; $newName = 'Tom'; $newAge = 20; $sql = "UPDATE student SET name=:name, age=:age WHERE id=:id"; $stmt = $db->prepare($sql); $stmt->bindParam(':id', $id, PDO::PARAM_INT); $stmt->bindParam(':name', $newName, PDO::PARAM_STR); $stmt->bindParam(':age', $newAge, PDO::PARAM_INT); $stmt->execute();
上記のコードでは、UPDATE ステートメントを通じて名前と年齢を新しい値に更新します。 。更新する各フィールドに対応するパラメータをバインドする必要があることに注意してください。
データを一括して更新したい場合は、PDO のトランザクション機能を使用できます。以下は、複数の学生レコードを更新するコード例です。
//更新多条数据 $students = array( array('id'=>1, 'name'=>'Tom', 'age'=>20), array('id'=>2, 'name'=>'Jack', 'age'=>22), array('id'=>3, 'name'=>'Lily', 'age'=>21) ); try { $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $db->beginTransaction(); $sql = "UPDATE student SET name=:name, age=:age WHERE id=:id"; $stmt = $db->prepare($sql); foreach ($students as $student) { $stmt->bindParam(':id', $student['id'], PDO::PARAM_INT); $stmt->bindParam(':name', $student['name'], PDO::PARAM_STR); $stmt->bindParam(':age', $student['age'], PDO::PARAM_INT); $stmt->execute(); } $db->commit(); } catch (PDOException $e) { $db->rollback(); echo $e->getMessage(); }
上記のコードでは、更新するレコードを含む配列 $students を定義します。次に、beginTransaction() 関数と commit() 関数を使用してトランザクション操作を実装しました。ループ内で、各レコードの id、name、age パラメーターをバインドし、それぞれ SQL ステートメントを実行します。
概要
PDO を使用してデータベース データを変更することは、安全で信頼性の高い方法です。この記事では、PDO を使用して MySQL データベースに接続する方法を説明し、例を通して PDO を使用してデータベース データを変更する方法を示します。 PDO のトランザクション機能を使用してバッチでレコードを更新する方法も紹介しました。これは非常に実践的なスキルです。
以上がPHP PDO 拡張機能を使用して MySQL データベースに接続する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。