logo

PHP PDO の概要

PHP は、オープンソースの汎用スクリプト言語であり、動的でインタラクティブな Web ページの作成に広く使用されています。 PHP は、次のような広範囲のリレーショナル データベース管理システムにアクセスできます。 MYSQL、SQLite 、 そして PostgreSQL 。の PHP5.1 バージョンでは、新しいデータベース接続抽象化ライブラリが提供されました。 PHPデータオブジェクト (PDO)。

PDOとは何ですか?

PDOとは PHPデータオブジェクト これは、PHP でデータベースにアクセスするための軽量で一貫したインターフェイスを定義する PHP 拡張機能です。これは、コア PDO クラスとデータベース固有のドライバーを提供する PHP 拡張機能のセットです。各データベース ドライバーは、データベース固有の機能を、PDO インターフェイスを実装する通常の拡張関数として公開できます。

注: PDO 拡張機能自体を使用して、いかなる種類のデータベース機能も実行することはできません。データベース サーバーにアクセスするには、データベース固有の PDO ドライバーを使用する必要があります。

PDO は、データベースの抽象化ではなく、データ アクセスの抽象化に主に焦点を当てています。それは提供します データアクセス抽象化層 つまり、使用しているデータベースに関係なく、クエリを発行してデータを取得するには、そのデータベースが提供する同じ関数を使用する必要があります。 PDO は、SQL を書き換えたり、欠落している機能をエミュレートしたりしないため、データの抽象化を提供しません。

PDOのメリット

PDO は、オブジェクトを操作するためのさまざまな方法を提供し、作業を大幅に容易にする準備済みステートメントを取得します。これは PHP のデータベース アクセス ツールで、これを使用して複数のデータベースに均一なアクセスを可能にします。

PDO を使用すると、異なるデータベースやプラットフォーム間の比較的シームレスな切り替えが可能になります。これは、接続文字列を変更することで簡単に行うことができます。データベース固有の構文はサポートされていません。

string.compareとC#

PDO には次のような利点があります。

文字列から整数へのJava
    データベースのサポート
    PDO 拡張機能は、PDO ドライバー用に作成された任意のデータベースにアクセスできます。使用可能な PDO ドライバーがいくつかあります。 FreeTDS、Microsoft SQL Server、Sybase、IBM DB2、Oracle Call Interface、Firebird/Interbase 6 、 そして PostgreSQL データベースなど。
    ドライバーはすべてのシステムで自動的に利用できるわけではないため、利用可能なドライバーを見つけて、必要なときに追加する必要があります。データベース接続中
    データベース接続を確立するために使用できるさまざまな構文があります。これらの構文は特定のデータベースに依存します。 PDO を使用する場合は、操作を try/catch ブロックでラップし、例外手法を使用する必要があります。
    通常、作成する必要がある接続は 1 つだけであり、これらの接続はデータベースをプログラミングして null に設定することで閉じられます。エラー処理
    PDO では、エラー処理に例外を使用できます。例外を生成するには、PDO を関連するエラー モード属性に強制することができます。
    3 つのエラー モードがあります。 静けさ (デフォルト)、 警告 、 そして 例外 。警告と例外は、DRY プログラミングでより便利です。
      静けさ- デフォルトのエラーモードです。警告- デバッグに便利です。例外- このモードでは、ユーザーがシステムを悪用するために使用する可能性のあるデータを隠しながら、適切なエラー処理が可能になります。
    挿入と更新
    PDO は、一般的に使用されるデータベースの挿入および更新操作を 2 段階のプロセスに減らします。
    準備>>[バインド]>>実行。
    この方法により、SQL インジェクションによる悪意のある攻撃から保護する PDO のプリペアド ステートメントを最大限に活用できます。
    準備されたステートメントは、このデータをサーバーに送信することで複数回実行できる、事前にコンパイルされた SQL ステートメントです。プレースホルダー内で使用されるこのデータは、SQL インジェクション攻撃から自動的に保護されます。

PDO を使用する利点

PDO はネイティブ データベース ドライバーです。 PDO を使用すると、次のような利点があります。

    使いやすさ- 自動定型操作を実行するための多くのヘルパー関数が含まれています。再利用性- 複数のデータベースにアクセスするための統合 API を提供します。安全- SQL インジェクションから保護するプリペアド ステートメントを使用します。準備されたステートメントは、SQL ステートメントの命令をデータから分離する、事前にコンパイルされた SQL ステートメントです。

PDO クラス

以下に示す 3 つの PDO クラスがあります。

    PDO- PHP とデータベース間の接続を表します。PDOステートメント- 準備されたステートメントを表し、ステートメントの実行後に、関連する結果を設定します。PDO例外- PDO によって発生したエラーを表します。

PDO がサポートするデータベース

  1. MySQL
  2. PostgreSQL
  3. オラクル
  4. 火の鳥
  5. MS SQLサーバー
  6. サイベース
  7. インフォミックス
  8. IBM
  9. 無料TDS
  10. SQLite
  11. キューブリッド
  12. 4D

PDO と MySQLi の比較

PHP を使用してデータベースにアクセスするには、主に 2 つのオプションがあります。 MySQLi そして PDO (PHP データ オブジェクト)。 MySQLi は、より高速なパフォーマンスを提供する PHP のネイティブですが、経験豊富な開発者のほとんどは、多種多様なデータベース ドライバーをサポートする PDO での作業を好みます。 PDO と MySQLi には、機能に基づいて以下に示すいくつかの違いがあります。

特徴 PDO MySQLi
DBサポート 12 種類のドライバー MySQLのみ
繋がり 簡単 簡単
API 開ける OOP + プロシージャ
パフォーマンス 速い 速い
名前付きパラメータ はい いいえ
オブジェクトマッピング はい はい
ストアド プロシージャ はい はい
クライアント側の準備済みステートメント はい いいえ
安全 MySQLi よりも安全です。 安全ですが、PDO 以上ではありません。

PDO と MySQLi ではどちらを優先すべきですか?

PDO と MySQLi にはそれぞれ次のような利点があります。

  • 前に見たように、PDO は 12 の異なるデータベース システムで動作しますが、MySQL は MySQL データベースでのみ動作します。したがって、プロジェクトを別のデータベースに切り替えたい場合も、PDO を使用すると簡単に行えます。 MySQLi では、コード全体を書き直す必要があります。
  • PDO と MySQLi は両方ともオブジェクト指向ですが、MySQLi は手続き型 API も提供します。どちらも準備済みステートメントをサポートしています。プリペアド ステートメントは SQL インジェクションから保護するため、Web アプリケーションのセキュリティにとって重要です。

要件

この拡張機能を構築するために外部ライブラリは必要ありません。

JavaScriptのトリム

インストールプロセス

ステップ1: 最新のXAMPPサーバーをここからダウンロードします https://www.apachefriends.org/download.html Windows、Linux、MacOS などのさまざまなプラットフォームに対応します。

ペップド

注: ここでは、Windows OS のインストール プロセスについてのみ説明します。

ステップ2: 次の手順に従って、XAMPP サーバーをシステムにインストールします。

ペップド

ステップ 3: インストールするコンポーネントを選択し、「次へ」ボタンをクリックします。

ペップド

ステップ 4: XAMPP をインストールする場所に、xampp という名前の新しいフォルダーを作成します。

ペップド

ステップ5: ここで「次へ」をクリックして次に進みます。ここからXAMPPサーバーのインストールが始まります。

ペップド

ステップ6: XAMPPは正常にインストールされました。 「完了」ボタンをクリックします。

ペップド

ステップ7: 優先言語を選択します。

ペップド

ステップ8: ここから Apache サーバーと MySQL を実行します (指定されたスクリーンショットに従って)。

ペップド

ステップ9: 次に、php.ini を開きます。 C:/xampp/php/php.ini (XAMPPをインストールした場所)拡張機能のコメントを解除します 「php_pdo_mysql.dll」 そして 「php_pdo.dll」 (MySQL データベースを使用している場合)、または 「php_pdo_oci.dll」 (Oracle データベースを使用している場合)。ここで、データベースの操作を開始します。 PHP 5.1上位バージョンではすでに設定されています。

arp - コマンド

PDO の使用

まずデータベースを作成する必要があるので、ここから myDB という名前でデータベースを作成します。

ペップド

データベース接続

データベースと対話するには、データベース接続が常に必要です。したがって、データベースにアクセスするための識別子、つまりデータベースの場所、データベース名、ユーザー名、パスワードを知る必要があります。

JSのグローバル変数

次に、notepad や notepad++ などのテキスト エディタで PDO を使用してデータベース接続プログラムを作成し、coonection.php という名前で保存します。 localhost/80 を使用して XAMPP サーバー上で実行します。

 getMessage(); } ?> 

出力

次の URL を使用してサーバー上で実行します。 localhost/Xampp/pdoexample/connection.php/ またはプログラムを保存した場所。

ペップド

接続エラーの処理

接続エラーが発生した場合は、PDOException オブジェクトがスローされます。エラー条件を処理したい場合は例外をキャッチすることもできますし、次のように設定できるグローバル例外ハンドラーに任せることもできます。 set_Exception_handler() 関数。

この例では、dbUser(user-id) が間違っているため、出力でわかるように例外がスローされます。

 setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); Echo 'Successfully connected with myDB database'; } catch(Exception $e){ Echo 'Connection failed' . $e->getMessage(); } ?> 
ペップド

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

 getMessage(); } // this command close the connection. $dbConn = null; ?> 

出力

ペップド