ホームページ >バックエンド開発 >PHPチュートリアル >phpのpdo関数ライブラリの使い方を詳しく解説
2. pdostatement
詳細な説明 1) PDO でのデータベース接続
多くの Web アプリケーションは、データベースへの永続的な接続を使用して最適化されます。永続的な接続はスクリプトの終了時に閉じられません。 代わりに、別のスクリプトが同じ ID で接続を要求したときにキャッシュされ、再利用されます。 永続的な接続のキャッシュにより、スクリプトがデータベースと通信する必要があるたびに新しい接続をデプロイするというリソースの消費を回避できるため、Web アプリケーションが高速化されます。 上記の例の array(pdo::attr_persistent => true) は、接続タイプを永続接続に設定します。 詳しい説明2) PDOでのトランザクション ロールバック機能がサポートされている場合、pdo->begintransaction()、pdo->commit()、および pdo->rollback() の 3 つのメソッドが一緒に使用されます。 pdo->begintransaction() メソッドは開始点をマークし、 pdo->commit() メソッドはロールバックの終了点をマークして SQL を実行し、 pdo->rollback() はロールバックを実行します。
これまでにトランザクション処理に遭遇したことがない場合は、pdo がトランザクションをどのように管理するかを理解する必要があります。ここで簡単に説明します :) これらは、アトミック性、一貫性、分離性、耐久性 (acid) という 4 つの主要な機能を提供します。つまり、段階的に実行される場合でも、トランザクション内のすべての作業はコミットされるときにコミットされます。また、リクエストでエラーが発生した場合、トランザクション作業を自動的に簡単にキャンセルすることもできます。 トランザクションの一般的な使用法は、バッチの変更を「保存」し、すぐに実行することです。これにより、更新効率が完全に向上するという利点があります。言い換えれば、トランザクションによりスクリプトが高速になり、より堅牢になる可能性があります (この利点を実現するには、トランザクションを正しく使用する必要があります)。残念ながら、すべてのデータベースがトランザクションをサポートしているわけではないため、接続の確立時に pdo が「自動コミット」モードとみなされるモードで実行されている必要があります。オートコミット モードは、データベースがトランザクションをサポートしているか、データベースがトランザクションをサポートしていないためにトランザクションがないかに関係なく、実行するすべてのクエリに独自の暗黙的なトランザクション処理があることを意味します。トランザクションが必要な場合は、 pdo->begintransaction() メソッドを使用してトランザクションを作成する必要があります。基礎となるドライバーがトランザクションをサポートしていない場合、pdoException がスローされます (例外処理の設定に関係なく、これは常に重大なエラー状態であるため)。トランザクション内では、トランザクション内のコードが正常に実行されたかどうかに応じて、 pdo->commit() または pdo->rollback() を使用してトランザクションを終了できます。 スクリプトが終了するか接続が閉じられるとき、未完了のトランザクションがある場合、pdo はそれを自動的にロールバックします。これは、スクリプトが予期せず終了した場合の安全な解決策です。トランザクションを明示的にコミットしない場合、スクリプトは何か問題が発生したものとみなし、データの安全性を確保するためにロールバックを実行します。 2.
属性リスト: pdo::param_bool ブール型を表します pdo::param_null SQLでnull型を表します pdo::param_int SQLで整数型を表します pdo::param_str SQLのchar、varchar型を表します。 pdo::param_lob SQL でラージ オブジェクト タイプを表します。 pdo::param_stmt まだサポートされていない SQL のレコードセット タイプを表します。 pdo::param_input_output パラメーターがストアド プロシージャの inout パラメーターであることを指定します。この値と明示的な pdo::param_* データ型をビット単位で論理和する必要があります。 pdo::fetch_lazy 結果の各行をオブジェクトとして返します。 pdo::fetch_assoc キー値を添え字とするクエリの結果セットのみが返されます。同じ名前のデータが 1 つだけ返されます。 pdo::fetch_named キー値を添え字とするクエリの結果セットのみが配列形式で返されます。 pdo::fetch_num 添字として数字を含むクエリの結果セットのみを返します。 pdo::fetch_both キー値と数字を添え字として同時に含むクエリの結果セットを返します。 pdo::fetch_obj 結果セットをオブジェクトとして返す pdo::fetch_bound pdostatement::bindparam() と pdostatement::bindcolumn() にバインドされた値を変数名として代入して返します。 pdo::fetch_column 結果セット内の特定の列のみが返されることを示します pdo::fetch_class 結果セットがクラスの形式で返されることを示します pdo::fetch_into 返すためにデータを既存のクラスにマージすることを示します pdo::fetch_func pdo::fetch_group pdo::fetch_unique pdo::fetch_key_pair 最初のキー値の下のテーブルと、次の数値の下のテーブルの形式で結果セットを返します。 pdo::fetch_classtype pdo::fetch_serialize データを既存のクラスにマージし、シリアル化して戻すことを示します。 pdo::fetch_props_late PHP 5.2.0以降で利用可能 pdo::attr_autocommit true に設定すると、PDO は自動的にコミッションの受け入れを停止し、実行を開始しようとします。 pdo::attr_prefetch アプリケーションが取得するデータ サイズを事前に設定します。すべてのデータベースがサポートしているわけではありません。 pdo::attr_timeout データベース接続タイムアウトの値を設定する pdo::attr_errmode エラー処理モードを設定する pdo::attr_server_version PDO 接続のサーバー側データベースのバージョンを示す読み取り専用属性 pdo::attr_client_version PDO 接続のクライアント PDO ドライバーのバージョンを示す読み取り専用属性 pdo::attr_server_info 読み取り専用属性。pdo に接続されているサーバーのメタ情報を示します。 pdo::attr_connection_status pdo::attr_case pdo::case_* の内容を通じて列フォームを操作します。 pdo::attr_cursor_name ポインタの名前を取得または設定します pdo::attr_cursor ポインターのタイプを設定します。PDO は pdo::cursor_fwonly と pdo::cursor_fwonly をサポートするようになりました。 pdo::attr_driver_name 使用される PDO ドライバーの名前を返します。 pdo::attr_oracle_nulls 返された空の文字列をSQLのnullに変換します。 pdo::attr_persistent 既存の接続を取得する pdo::attr_statement_class pdo::attr_fetch_catalog_names 返された結果セットでは、フィールド名の代わりにカスタム カタログ名を使用します。 pdo::attr_fetch_table_names 返された結果セットでは、フィールド名の代わりにカスタム テーブル名を使用します。 pdo::attr_stringify_fetches pdo::attr_max_column_len pdo::attr_default_fetch_mode PHP 5.2.0以降で利用可能 pdo::attr_emulate_prepares PHP 5.1.3 以降で利用可能です。 pdo::errmode_silent エラーが発生してもエラー メッセージは報告されません。これがデフォルト値です。 pdo::errmode_warning エラーが発生したときにphp e_warningメッセージを送信する pdo::errmode_例外 エラーが発生した場合に pdoException をスローします pdo::case_natural 返信列のデフォルトの表示形式 pdo::case_ lower 列名を強制的に小文字にする pdo::case_upper 列名を強制的に大文字にする pdo::null_natural pdo::null_empty_string pdo::null_to_string pdo::fetch_ori_next 結果セット内のデータの次の行を取得します。ポインター関数を使用する場合にのみ有効です。 pdo::fetch_ori_prior 結果セット内のデータの前の行を取得します。ポインター関数がある場合にのみ有効です。 pdo::fetch_ori_first 結果セット内のデータの最初の行を取得します。ポインター関数を使用する場合にのみ有効です。 pdo::fetch_ori_last 結果セット内のデータの最後の行を取得します。ポインター関数を使用する場合にのみ有効です。 pdo::fetch_ori_abs 結果セット内の特定のデータ行を取得します。ポインター関数がある場合にのみ有効です。 pdo::fetch_ori_rel 結果セットの現在行以降の行のデータを取得します。ポインター関数がある場合にのみ有効です。 pdo::cursor_fwonly 逆方向のみのポインタ操作オブジェクトを作成する pdo::cursor_scroll ポインター操作オブジェクトを作成し、その内容を pdo::fetch_ori_* に渡して結果セットを制御します pdo::err_none (文字列) エラーがない場合のエラーメッセージを設定します pdo::param_evt_alloc 割り当てイベント pdo::param_evt_free 割り当て解除イベント pdo::param_evt_exec_pre 準備されたステートメントの実行前にトリガーされるイベント。 pdo::param_evt_exec_post その後、イベントがトリガーされ、準備されたステートメントが実行されます。 pdo::param_evt_fetch_pre 結果セットから結果を取得する前にトリガーされるイベント。 pdo::param_evt_fetch_post その後、イベントがトリガーされて結果セットから結果を取得します。 pdo::param_evt_normalize バインドされたパラメーターの登録中にイベントがトリガーされ、ドライバーがパラメーター名を正規化できるようになります。 |