php pdo:php pdoの勉強ノート
■pdoとは? pod (php データ オブジェクト) 拡張機能は php5 で追加されました。php6 では、デフォルトで pdo がデータベースに接続するために使用されます。php6 では、すべての非 pdo 拡張機能が削除されます。この拡張機能は、データベースにアクセスするための php 組み込みクラス pdo を提供します。異なるデータベースは、一貫性のないデータベース接続の問題を解決するために同じメソッド名を使用します。 Windows での開発用に構成しました。 ■pdo
の目標は、さまざまな rdbms ライブラリの共通機能を統合する軽量で明確で便利な API
を提供することですが、より高度な機能を排除するものではありません。
PHP スクリプトを介して、オプションで高度な抽象化/互換性を提供します。
■PDO の特徴:
パフォーマンス。 pdo は、既存のデータベースのスケーリングの成功と失敗について最初から学びました。 PDO のコードはまったく新しいものであったため、PHP 5 の最新機能を活用するためにパフォーマンスをゼロから再設計する機会がありました。
能力。 pdo は、rdbms の独自の機能に簡単にアクセスできるようにしながら、基盤として一般的なデータベース機能を提供するように設計されています。
シンプル。 pdo は、データベースの操作を簡単にするように設計されています。 API はコードに強制的に組み込まれることはなく、各関数呼び出しのプロセスが明確に示されます。
実行時に拡張可能。 pdo 拡張機能はモジュール式であり、php プログラム全体を再コンパイルまたは再インストールすることなく、実行時にデータベース バックエンドのドライバーを読み込むことができます。たとえば、pdo_oci 拡張機能は、pdo 拡張機能の代わりに Oracle データベース API を実装します。 mysql、postgresql、odbc、firebird 用のドライバーもあり、さらに多くのドライバーが開発中です。
■pdo のインストール
Windows での開発用の pdo 拡張機能は、Linux でインストールして設定したい場合は、他の場所を参照してください。
バージョン要件: php5.1 以降のバージョンはすでにパッケージに含まれています。php5.0.x は pecl.php.net からダウンロードして、php が保存されているフォルダーの拡張子ライブラリに配置する必要があります。フォルダにあります。マニュアルには、5.0 より前のバージョンでは pdo 拡張機能を実行できないと記載されています。設定:
pdo をサポートするように php.ini 設定ファイルを変更します (php.ini を理解していない場合は、phpinfo() 関数を呼び出すときに表示される php.ini を変更する必要があることをまず明確にしてください。) extension=php_pdo.dll の前のセミコロンを削除します。セミコロンは php 設定ファイルのコメント記号です。この拡張子は必須です。さらにその下には、
;extension=php_pdo.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_informix.dll
;extension=php_pdo_mssql.dll
;extension=php_pdo_mysql.dll;extension=php_pdo_oci.dll
;extension=php_pdo_oci8.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
;extension=php_pdo_sqlite.dll 各拡張子に対応 データベース
どのデータベースを使用するかは、対応する展開の前にあるコメント記号「;」を削除するだけです。
pdo_dblib | freetds / microsoft sql server / sybase |
pdo_firebird | firebird/interbase 6 |
pdo_informix | ibm informix dynamic server |
pdo_mysql | mysql 3.x/4.x |
pdo_oci | oracle call interface |
pdo_odbc | odbc v3 (ibm db2, unixodbc and win32 odbc) |
pdo_pgsql | postgresql |
pdo_sqlite | sqlite 3 and sqlite 2 |
ここでは、mysql がインストールされていることを前提としています。そうでない場合は、まずインストールする方法を見つけてください。私の場合は mysql5.0.22 を使用しており、暗い夜に通りかかる人は mysql 4.0.26 を使用しています。 。 ★データベース接続:
次の例を使用して、データベースへの PDO 接続を分析します。
$dbms='mysql'; //データベース タイプ oracle は odi を使用します。開発者が別のデータベースを使用する場合、これを変更するだけでよく、それほど多くのことを覚える必要はありません。 function
";<🎜>/*検索操作を実行することもできます <🎜 > 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));?> テーブル> ★データベース クエリ: 上記のクエリはすでに実行しましたが、次のクエリも使用できます:
$rs = $db->query("select * from foo "); $rs->setfetchmode(pdo::fetch_assoc); $result_arr = $rs->fetchall(); print_r($result_arr); ?> 上記では setattribute() メソッドが使用されているため、フィールド名を強制的に大文字にするために 2 つのパラメーターが入力されています。以下に、pdo::setattribute() のパラメーターをリストします。 pdo::attr_case: 以下に詳述するように、列名を強制的にフォーマットします (2 番目のパラメーター): pdo::case_ lower: 列名を強制的に次の形式にします。小文字。 pdo::case_natural: 列名はオリジナルの方法です pdo::case_upper: 列名を強制的に大文字にします。 pdo::attr_errmode: エラー プロンプト。 pdo::errmode_silent: エラー情報は表示されず、エラー コードのみが表示されます。 pdo::errmode_warning: 警告エラーを表示します。 pdo::errmode_Exception: 例外をスローします。 pdo::attr_oracle_nulls (Oracle だけでなく、他のデータベースにも有効):) データベースから返される null 値に対応する値を php で指定します。 pdo::null_natural: 変更なし。 pdo::null_empty_string: 空の文字列は null に変換されます。 pdo::null_to_string: null は空の文字列に変換されます。 pdo::attr_stringify_fetches: フェッチに bool が必要な場合、数値を文字列に変換します。 pdo::attr_statement_class: pdostatement から派生したユーザー指定のステートメント クラスを設定するには、array(string classname, array(mixedconstructor_args)) が必要です。 pdo::attr_autocommit (oci、firebird、mysql で利用可能): すべてのステートメントを自動コミットするかどうか。 pdo::mysql_attr_use_buffered_query (mysql で利用可能): バッファされたクエリを使用します。 この例の $rs->setfetchmode(pdo::fetch_assoc); は、戻り値の型の宣言である pdostatement::setfetchmode() です。 は次のとおりです: pdo::fetch_assoc -- 連想配列形式
");}}public Final function query($sql){try {returnparent:: query($this->setstring($sql));}catch (pdoException $e){die("error: " . $e->__tostring() . " setattribute(pdo::attr_case, pdo::case_upper);foreach ($db->query('select * from xxxx_menu') as $row) {print_r($row);}$db->exec('delete from `xxxx_menu` wheremid=43'); テーブル> 4.php マニュアル ★ この時点で、pdo を介して mysql に接続しました。クエリを発行する前に、pdo がトランザクションをどのように管理するかを理解する必要があります。これまでトランザクションに触れたことがない場合は、まずトランザクションの 4 つの特性、つまりアトミック性、一貫性、分離性、耐久性、つまり Acid を理解する必要があります。平たく言えば、トランザクション内で実行されるすべての作業は、それが段階的に実行される場合でも、作業がデータベースに安全に適用され、作業の送信中に他の接続からのリクエストの影響を受けないことが保証されます。 。 影響。トランザクション作業はリクエストに応じて (まだコミットしていない場合) 自動的に取り消すことができるため、スクリプトでのエラー処理がはるかに簡単になります。 トランザクションは通常、変更のバッチを蓄積し、それらを同時に有効にすることによって実装されます。この利点は、これらの更新の効率を大幅に向上できることです。言い換えれば、トランザクションによってスクリプトが高速化され、潜在的により堅牢になる可能性があります (ただし、そのような利点を得るにはトランザクションを正しく使用する必要があります)。 残念ながら、すべてのデータベースがトランザクションをサポートしているわけではありません (mysql5 はトランザクションをサポートしていますが、mysql4 は知りません)。そのため、最初に接続が開かれたときに、pdo をいわゆる「自動コミット」モードで実行する必要があります。オートコミット モードは、データベースがトランザクションをサポートしている場合は、実行するすべてのクエリに独自の暗黙的なトランザクションがあり、データベースがトランザクションをサポートしていない場合は、すべてのクエリにそのようなトランザクションが存在しないことを意味します。トランザクションが必要な場合は、 pdo::begintransaction() メソッドを使用してトランザクションを開始する必要があります。基礎となるドライバーがトランザクションをサポートしていない場合、pdoException がスローされます (エラー処理設定に関係なく、これは常に致命的なエラー状態です)。トランザクション内で実行中のコードが成功したかどうかに応じて、トランザクション内で pdo::commit() または pdo::rollback() を使用してトランザクションを終了できます。 スクリプトが終了するとき、または接続が閉じられようとするときに、未処理のトランザクションがある場合、pdo はトランザクションを自動的にロールバックします。これは、スクリプトが異常終了した場合に不整合を回避するための安全対策です。トランザクションが明示的にコミットされていない場合は、どこかで不整合が発生すると想定されるため、データのセキュリティを維持するためにロールバックが実行されます。 この記事へのリンク http://www.cxybl.com/html/wlbc/Php/20120531/27131.html
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
![]() ホットAIツール![]() Undresser.AI Undressリアルなヌード写真を作成する AI 搭載アプリ ![]() AI Clothes Remover写真から衣服を削除するオンライン AI ツール。 ![]() Undress AI Tool脱衣画像を無料で ![]() Clothoff.ioAI衣類リムーバー ![]() Video Face Swap完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。 ![]() 人気の記事
アサシンのクリードシャドウズ:シーシェルリドルソリューション
3週間前
By DDD
Windows11 KB5054979の新しいものと更新の問題を修正する方法
2週間前
By DDD
Atomfallのクレーンコントロールキーカードを見つける場所
3週間前
By DDD
<🎜>:Dead Rails-すべての課題を完了する方法
4週間前
By DDD
Atomfall Guide:アイテムの場所、クエストガイド、およびヒント
4週間前
By DDD
![]() ホットツール![]() メモ帳++7.3.1使いやすく無料のコードエディター ![]() SublimeText3 中国語版中国語版、とても使いやすい ![]() ゼンドスタジオ 13.0.1強力な PHP 統合開発環境 ![]() ドリームウィーバー CS6ビジュアル Web 開発ツール ![]() SublimeText3 Mac版神レベルのコード編集ソフト(SublimeText3) ![]() ホットトピック
Gmailメールのログイン入り口はどこですか?
![]() ![]()
CakePHP チュートリアル
![]() ![]()
Steamのアカウント名の形式は何ですか
![]() ![]()
NYTミニクロスワードの回答
![]() ![]() ![]() PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。 ![]() PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7 ![]() PHPは、現代のWeb開発、特にコンテンツ管理とeコマースプラットフォームで依然として重要です。 1)PHPには、LaravelやSymfonyなどの豊富なエコシステムと強力なフレームワークサポートがあります。 2)パフォーマンスの最適化は、Opcacheとnginxを通じて達成できます。 3)PHP8.0は、パフォーマンスを改善するためにJITコンパイラを導入します。 4)クラウドネイティブアプリケーションは、DockerおよびKubernetesを介して展開され、柔軟性とスケーラビリティを向上させます。 ![]() PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。 ![]() データベースとプログラミングにおけるMySQLの位置は非常に重要です。これは、さまざまなアプリケーションシナリオで広く使用されているオープンソースのリレーショナルデータベース管理システムです。 1)MySQLは、効率的なデータストレージ、組織、および検索機能を提供し、Web、モバイル、およびエンタープライズレベルのシステムをサポートします。 2)クライアントサーバーアーキテクチャを使用し、複数のストレージエンジンとインデックスの最適化をサポートします。 3)基本的な使用には、テーブルの作成とデータの挿入が含まれ、高度な使用法にはマルチテーブル結合と複雑なクエリが含まれます。 4)SQL構文エラーやパフォーマンスの問題などのよくある質問は、説明コマンドとスロークエリログを介してデバッグできます。 5)パフォーマンス最適化方法には、インデックスの合理的な使用、最適化されたクエリ、およびキャッシュの使用が含まれます。ベストプラクティスには、トランザクションと準備された星の使用が含まれます ![]() PHPは依然として動的であり、現代のプログラミングの分野で重要な位置を占めています。 1)PHPのシンプルさと強力なコミュニティサポートにより、Web開発で広く使用されています。 2)その柔軟性と安定性により、Webフォーム、データベース操作、ファイル処理の処理において顕著になります。 3)PHPは、初心者や経験豊富な開発者に適した、常に進化し、最適化しています。 ![]() PHPとPythonにはそれぞれ独自の利点があり、さまざまなシナリオに適しています。 1.PHPはWeb開発に適しており、組み込みのWebサーバーとRich Functionライブラリを提供します。 2。Pythonは、簡潔な構文と強力な標準ライブラリを備えたデータサイエンスと機械学習に適しています。選択するときは、プロジェクトの要件に基づいて決定する必要があります。 ![]() PHPは動的なWebサイトを構築するために使用され、そのコア関数には次のものが含まれます。1。データベースに接続することにより、動的コンテンツを生成し、リアルタイムでWebページを生成します。 2。ユーザーのインタラクションを処理し、提出をフォームし、入力を確認し、操作に応答します。 3.セッションとユーザー認証を管理して、パーソナライズされたエクスペリエンスを提供します。 4.パフォーマンスを最適化し、ベストプラクティスに従って、ウェブサイトの効率とセキュリティを改善します。 ![]() |