ホームページ  >  記事  >  バックエンド開発  >  PHP PDO 拡張機能を使用して MySQL データベースに接続する方法

PHP PDO 拡張機能を使用して MySQL データベースに接続する方法

PHPz
PHPzオリジナル
2023-04-04 09:12:38910ブラウズ

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 を使用してこのテーブルのデータを変更する方法を示します。

  1. 単一フィールドの更新

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() 関数を呼び出して更新操作を実行します。

  1. 複数のフィールドを更新する

複数のフィールドを更新したい場合は、上記と同様の方法を使用できます。以下は、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 ステートメントを通じて名前と年齢を新しい値に更新します。 。更新する各フィールドに対応するパラメータをバインドする必要があることに注意してください。

  1. レコードの一括更新

データを一括して更新したい場合は、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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。