PHP Data Objects (PDO) 拡張機能は、PHP がデータベースにアクセスするための軽量で一貫したインターフェイスを定義します。
PDO はデータ アクセス抽象化レイヤーを提供します。これは、どのデータベースが使用されても、同じ関数 (メソッド) を使用してデータのクエリと取得ができることを意味します。
PDO は PHP5.1 でリリースされ、PHP5.0 の PECL 拡張機能でも使用できますが、以前の PHP バージョンでは実行できません。
PDO 拡張機能がインストールされているかどうかは、PHP の phpinfo() 関数を通じて確認できます。
Unix または Linux では、次の拡張機能を追加する必要があります。
拡張子=pdo.so
PDO とすべての主要なドライバーは、共有拡張機能として PHP に同梱されています。これらを有効にするには、php.ini ファイルを編集して次の拡張機能を追加するだけです。
拡張子=php_pdo.dllさらに、以下に対応するさまざまなデータベース拡張機能があります。
;extension=php_pdo_firebird.dll;extension=php_pdo_informix.dll;extension=php_pdo_mssql.dll;extension=php_pdo_mysql.dll;extensio n=php_pdo_oci.dll;extension=php_pdo_oci8.dll;extension=php_pdo_odbc.dll;extension=php_pdo_pgsql.dll;extension=php_pdo_sqlite.dll
これらの構成を設定した後、PHP または Web サーバーを再起動する必要があります。
次に、PDO を使用して MySql データベースに接続する例を具体的に見てみましょう。
<?php$dbms='mysql'; //データベースの種類 $host='localhost'; //使用するデータベース $user='root'; $pass=''; //対応するパスワード $dsn="$dbms:host=$host;dbname=$dbName"; try { $dbh = new PDO($dsn, $user, $pass); //PDO オブジェクトを初期化します echo "接続成功<br/>" /*検索操作 foreach を実行することもできます ($dbh->query('SELECT * from FOO') as $row) { print_r($row) ; //これらの値を確認するには echo($GLOBAL); を使用できます} */ $dbh = null;} catch (PDOException $e) { die ("Error!: " . $e->getMessage() . "<br/>");}// デフォルトでは、これは長い接続ではありません。データベースへの長い接続が必要な場合は、最後にパラメータを追加する必要があります: array(PDO::ATTR_PERSISTENT => true) 次のようになります: $db = new PDO( $dsn, $user, $pass, array(PDO::ATTR_PERSISTENT => true));?>
それは非常に簡単です。次に、PHP PDO の具体的な命令を詳しく見てみましょう。
事前定義された定数
PHP PDO 接続接続管理
PHP PDO トランザクションと自動コミット
PHP PDO プリペアド ステートメントとストアド プロシージャ
PHP PDO エラーとエラー処理
PHP PDO ラージ オブジェクト (LOB)
PDO クラス:
PDO::beginTransaction — トランザクションを開始する
PDO::commit — トランザクションをコミットする
PDO::__construct — データベース接続を表す PDO インスタンスを作成する
PDO::errorCode — データベース ハンドルの最後の操作に関連付けられた SQLSTATE を取得する
PDO::errorInfo — 最後のデータベース操作のエラー情報を返す
PDO::exec — SQL ステートメントを実行し、影響を受ける行の数を返す
PDO::getAttribute — データベース接続の属性を取得する
PDO::getAvailableDrivers — 利用可能なドライバーの配列を返す
PDO::inTransaction — トランザクション内かどうかを確認する
PDO::lastInsertId — 最後に挿入された行の ID またはシーケンス値を返す
PDO::prepare — 実行する SQL ステートメントを準備し、PDOStatement オブジェクトを返します。
PDO::query — SQL ステートメントを実行し、結果セットとして理解できる PDOStatement オブジェクトを返します。
PDO::quote — SQL ステートメントの文字列に引用符を追加します。
PDO::rollBack — トランザクションをロールバックする
PDO::setAttribute — 属性を設定する
PDOStatement クラス:
PDOStatement::bindColumn — 列を PHP 変数にバインドする
PDOStatement::bindParam — パラメータを指定された変数名にバインドする
PDOStatement::bindValue — 値をパラメータにバインドする
PDOStatement::closeCursor — ステートメントを再度実行できるようにカーソルを閉じます。
PDOStatement::columnCount — 結果セット内の列の数を返す
PDOStatement::debugDumpParams — SQL 前処理コマンドを出力する
PDOStatement::errorCode — 最後のステートメント ハンドル操作に関連付けられた SQLSTATE を取得する
PDOStatement::errorInfo — 最後のステートメント ハンドル操作に関連する拡張エラー情報を取得する
PDOStatement::execute — 準備されたステートメントを実行する
PDOStatement::fetch — 結果セットから次の行を取得する
PDOStatement::fetchAll — 結果セット内のすべての行を含む配列を返す
PDOStatement::fetchColumn — 結果セットの次の行から 1 つの列を返します。
PDOStatement::fetchObject — 次の行を取得し、オブジェクトとして返します。
PDOStatement::getAttribute — ステートメント属性を取得する
PDOStatement::getColumnMeta — 結果セット内の列のメタデータを返す
PDOStatement::nextRowset — 複数行セット ステートメント ハンドルの次の行セットに進む
PDOStatement::rowCount — 前の SQL ステートメントの影響を受けた行数を返す
PDOStatement::setAttribute — ステートメント属性を設定する
PDOStatement::setFetchMode — ステートメントのデフォルトのフェッチ モードを設定します。