PDOを使用してPHPでデータベースに接続する方法

王林
リリース: 2023-05-17 08:34:01
オリジナル
3430 人が閲覧しました

PHP は人気のあるサーバーサイド スクリプト言語であり、その主な目的は Web アプリケーションの開発です。データベース接続は Web アプリケーションの重要な部分です。この記事では、PHP Data Objects (PDO) を使用してデータベースに接続する方法を紹介します。 PDO は、さまざまなデータベースと対話するためのシンプル、安全、高速な方法を提供する PHP の抽象化レイヤーです。この記事では、例として MySQL を使用します。

  1. 準備

PDO を使用してデータベースに接続する前に、PDO 拡張機能が PHP にインストールされており、拡張機能が有効になっていることを確認する必要があります。そうでない場合は、PDO 拡張機能を PHP 構成ファイル (php.ini) に追加する必要があります。次のコマンドを使用して、PDO 拡張機能が有効になっているかどうかを確認できます。

php -m | grep pdo
ログイン後にコピー

リストに PDO と PDO_MYSQL が表示されている場合は、PDO を使用して MySQL データベースに接続する準備ができています。

  1. MySQL データベースへの接続

MySQL データベースへの接続の最初のステップは、PDO オブジェクトを作成することです。 PDO オブジェクトを作成するには、次の情報を指定する必要があります。

  • データ ソース名 (DSN): 接続するデータベースの種類と場所を示します。
  • ユーザー名とパスワード: 接続されたデータベースの認証に使用されるユーザー アカウント。

次は、MySQL データベースに接続するための PDO コードの例です:

<?php
$hostname = 'localhost'; // MySQL主机名
$database = 'mydatabase'; // 数据库名称
$username = 'myusername'; // 用户名
$password = 'mypassword'; // 密码

try {
    $dsn = "mysql:host=$hostname;dbname=$database";
    $pdo = new PDO($dsn, $username, $password);
    echo '成功连接到数据库!';
} catch (PDOException $exception) {
    die('连接数据库时发生错误:'.$exception->getMessage());
}
ログイン後にコピー

上記のコードでは、変数 $dsn を使用して、MySQL データベースに接続する DSN を保存します。 。この DSN の形式は、「mysql:host=ホスト名;dbname=データベース名」です。この DSN を PDO コンストラクターに渡して、PDO オブジェクトを作成します。接続に成功すると「データベースに正常に接続されました!」というメッセージが出力されます。エラーが発生した場合は、catch ブロックを使用するとエラー メッセージが出力されます。

  1. Query MySQL Database

MySQL データベースに接続した後、さまざまなクエリを実行してデータを取得し、データベースを更新できます。 PDO を使用して PHP で MySQL クエリを実行する例をいくつか示します。

  • クエリ データ:
$sql = "SELECT * FROM users WHERE id = :id";
$stmt = $pdo->prepare($sql);
$stmt->execute(['id' => 1]);
$result = $stmt->fetchAll();
print_r($result);
ログイン後にコピー

上記の例では、PDO の prepare メソッドを使用して Prepare を実行しました。クエリステートメント。クエリステートメント内の変更が必要な部分 (つまり、「id = :id」の「:id」) をプレースホルダーに置き換えます。 execute メソッドを使用してクエリ ステートメントを実行し、クエリするプレースホルダー値をそれに渡します。最後に、fetchAll メソッドを使用して、結果が配列として返されます。

  • データの挿入:
$sql = "INSERT INTO users (name, email) VALUES (?, ?)";
$stmt = $pdo->prepare($sql);
$stmt->execute(['John Doe', 'johndoe@example.com']);
echo $stmt->rowCount() . ' 行数据已添加到数据库';
ログイン後にコピー

上の例では、PDO の prepare メソッドを使用してクエリ ステートメントを準備します。クエリ ステートメント内のプレースホルダーは「?」に置き換えられます。 execute メソッドを使用してクエリ ステートメントを実行し、挿入するプレースホルダー値をクエリ ステートメントに渡します。最後に、rowCount メソッドを通じて挿入されたレコードの数を取得します。

  • データの更新:
$sql = "UPDATE users SET name = ? WHERE id = ?";
$stmt = $pdo->prepare($sql);
$stmt->execute(['Jane Doe', 1]);
echo $stmt->rowCount() . ' 行数据已更新';
ログイン後にコピー

上記の例では、PDO の prepare メソッドを使用してクエリ ステートメントを準備します。クエリ ステートメント内のプレースホルダーは「?」に置き換えられます。 execute メソッドを使用してクエリ ステートメントを実行し、更新するプレースホルダー値をクエリ ステートメントに渡します。最後に、rowCount メソッドを使用して、更新されたレコードの数を取得します。

  • データの削除:
$sql = "DELETE FROM users WHERE id = ?";
$stmt = $pdo->prepare($sql);
$stmt->execute([1]);
echo $stmt->rowCount() . ' 行数据已删除';
ログイン後にコピー

上記の例では、PDO の prepare メソッドを使用してクエリ ステートメントを準備します。クエリ ステートメント内のプレースホルダーは「?」に置き換えられます。 execute メソッドを使用してクエリ ステートメントを実行し、削除するプレースホルダー値をクエリ ステートメントに渡します。最後に、rowCount メソッドを使用して、削除されたレコードの数を取得します。

  1. データベース接続を閉じる

データベースに対するクエリ操作が完了したら、データベース接続を閉じることをお勧めします。これにより、残りのスクリプト実行中に不要な接続が維持されることがなくなり、高負荷時のデータベース サーバーのリソース消費が削減されます。 PHP で PDO を使用して MySQL データベースに接続する場合、次のコードを使用して接続を閉じることができます:

$pdo = null;
ログイン後にコピー

上記のコードでは、$pdo は MySQL データベースに接続するときに作成した PDO オブジェクトです。 PDO オブジェクトが閉じられると、PDO オブジェクトは破棄され、データベースへの接続が解放され、他のクライアントとの新しいデータベース接続を確立できるようになります。

概要

PHP データ オブジェクト (PDO) を使用して MySQL データベースに接続すると、データベース操作をより簡単かつ迅速に実行できるようになります。この記事では、データベース接続とクエリに PDO オブジェクトを使用する基本的な方法を紹介しました。 PDO の詳細と高度な機能を理解したい場合は、公式 PHP ドキュメントを参照し、継続的な練習を通じて経験を増やすことができます。

以上がPDOを使用してPHPでデータベースに接続する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート