ホームページ > バックエンド開発 > PHPチュートリアル > PDO に参加、Net_PHP チュートリアルに参加

PDO に参加、Net_PHP チュートリアルに参加

WBOY
リリース: 2016-07-13 10:12:22
オリジナル
773 人が閲覧しました

JieYuan.com の PDO に参加してください

原因

データベース関連の知識に注目していない

数か月前、私は誤って次のコードを開いてしまいました:

文句を言われたことはN年前に書かれたものです。その後、学習にも必要になり、mysql だけでは適さなくなりました。そこで、何か良い方法はないかとネットで探したところ、PDO を見つけました。

誘惑

インターネットを閲覧しているときに、次の一節を見つけました:

PHP データ オブジェクト (PDO) 拡張機能は、PHP でデータベースにアクセスするための軽量で一貫したインターフェイスを定義します。PDO インターフェイスを実装する各データベース ドライバーは、データベース固有の機能を通常の拡張機能として公開できます。 PDO 拡張機能自体は、データベース サーバーにアクセスするためにデータベース固有の PDO ドライバーを使用する必要があります。

PDO はデータ アクセス抽象化レイヤーを提供します。つまり、使用しているデータベースに関係なく、同じ関数を使用してクエリを発行し、データをフェッチします。PDO はデータベース抽象化を提供せず、SQL を書き換えません。または、不足している機能をエミュレートする必要がある場合は、本格的な抽象化レイヤーを使用する必要があります

ネチズンによる翻訳を提供します:

PDO 拡張機能は、PHP がデータベースにアクセスするための軽量で永続的なインターフェイスを定義します。 PDO インターフェイスを実装する各データベース ドライバーは、定期的な拡張形式でそれぞれの特性を表現できます。注: PDO 拡張機能自体を使用しても、データベース関数は実装されません。データベースにアクセスするには、特定のデータベース PDO ドライバーを使用する必要があります。

PDO はデータ アクセス抽象化レイヤーを提供します。これは、使用しているデータベースに関係なく、同じ関数を使用してデータのクエリと取得を行うことができることを意味します。 PDO はデータ抽出を提供せず、SQL ステートメントを書き換えたり、これらの関数を模倣したりしません。必要に応じて、本格的な抽出レイヤーを使用する必要があります。

データベース固有の構文制限の影響を受けないため、データベース プラットフォームの切り替えがより簡単になります。


初対面

労働者が仕事をうまくやりたいなら、まず道具を研ぐ必要があります。 php5のインストールについて説明しましたphp.iniの設定について話しましょう。 まず、次のことを知っておく必要があります:

php.ini

では、前のセミコロンを削除すると、その関数が使用できることを意味しますわかりました

php.iniを開きます(メモ帳で開くことができます) ファイル内で次の行を見つけます

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

拡張子=php_pdo_odbc.dll

extension=php_pdo_pgsql.dll

extension=php_pdo_sqlite.dll

前のセミコロンを削除するだけです(ここではすでに削除しています)。

php.iniを設定するときは注意し、変更する前にバックアップを作成してください。一度間違いを修正したのですが、それによって php が動作しなくなってしまいました。何が問題なのかまだわかりませんでした。 。

このように、pdoがインストールされます

遊んでみてください

最初に行うのは、もちろんデータベースへの接続方法を確認することです

それには PDO クラスがあり、新しい pdo オブジェクトを作成します。これは次のようになります

文法を見て、最初の文が出てきます~(≧▽≦)/~

その中で、mysqlはデータベースの種類、localostはホスト名、testはデータベース名、dbuserはユーザー名、データベースパス はパスワードです​​

注意してくださいtry/catchコードブロック、PDO操作を常にtry/catchコードブロック内にカプセル化し、例外メカニズムを使用する必要があります

以下はネチズンの文章図であり、私の文章を 1 つの文に組み合わせたものです

以下はエラー処理です

PDO は、3 でさまざまなエラー処理戦略を提供します。

PDOException例外オブジェクトがスローされ、
PDO::ERRMODE_SILENT

これはデフォルトで使用されるモードです。 PDOは、statementdatabaseオブジェクトに簡単なエラーコードを設定します。PDO->errorCode()、PDO->errorInfo()を使用できます。 メソッドを使用してエラーを確認します。エラーが statement オブジェクトの呼び出しによって発生した場合は、そのオブジェクトに対して PDOStatement->errorCode() または PDOStatement-> を使用できます。 () メソッドはエラー情報を取得します。 database オブジェクトの呼び出し時にエラーが発生した場合は、この database オブジェクトでこれら 2 つのメソッドを呼び出す必要があります。 PDO::ERRMODE_WARNING

エラーコードの設定に加えて、PDO

は従来のE_WARNINGメッセージを発行します。この設定は、デバッグ時や、プログラムの流れを中断せずに何が問題になったのかだけを確認したい場合に便利です。 PDO::ERRMODE_EXCEPTION

がエラー コードのある添付ファイルとして設定されている場合、PDO

PDOException 例外をスローし、エラー コードとエラー情報を反映するようにそのプロパティを設定します。この設定は、スクリプト内のエラー ポイントを効果的に「爆破 (爆破)」し、コード内のエラーの可能性のある領域を非常に迅速に示すため、デバッグ時にも非常に役立ちます。 (例外によってスクリプトが中断された場合、トランザクションは自動的にロールバックされることに注意してください。) Exception モードは、従来の PHP スタイルのエラー処理構造よりも明確な構造を使用してエラーを処理でき、クワイエット モードを使用するよりも使用するコードとネストが少なく、戻り値をより明示的にチェックできるため、非常に便利です。各データベースアクセスの値。

上記のコードに戻ると、エラーが発生した場合、

catchがそれをキャッチし、開発者が設定した内容に従ってさらに処理します。 。 接続はここで終了します。 。

攻撃

接続後はどうすればよいですか?そうです、データを処理しないのにデータベースは何の役に立つのでしょうか?以下はすべて 2 つのバージョンで提供されます:

テーブルがあるとしますzjyz

ID

名前

1

ああ

2

bbb

データクエリ

1としてidを使用してデータ

をクエリしたいと考えています

MYSQLバージョン:

PDOバージョン:

ほら、あまり変わらないみたいですね~~

データ更新

idのデータを1に更新し、nameの値をccc

に変更したいと考えています。

MYSQLバージョン:

PDOバージョン:

このexecの方がずっと新鮮だと思います

データを削除

id1のデータ

を削除したいです

MYSQLバージョン:

PDOバージョン:

はは、それでもexecは行数を返します

データを挿入

データを挿入したい id = 3 , name = ccc

MYSQLバージョン:

PDOバージョン:

楽しい幹部()

この機能は上で何度も登場していますが、ここで簡単に紹介します

PDO::exec() 単一の関数呼び出しで SQL ステートメントを実行し、このステートメントによって影響を受ける行数を返します。

PDO::exec() は、 SELECT ステートメントからの結果を返しません。プログラム内で 1 回だけ発行する必要がある SELECT ステートメントの場合は、 PDO::query() の使用を検討できます。複数回発行する必要があるステートメントの場合、 PDO::prepare() を使用して PDOStatement オブジェクトを準備し、 PDOStatement::execute() を使用してステートメントを発行できます。

概要

このテクノロジーは少し古いですが、古い文章に比べればまだ活気があります。研究が進むにつれて、ルルはこの記事では触れられていない多くのことも学びました。皆さんありがとうございます~(≧▽≦)/~

他にもたくさんあります。 。 。データベースに関係するすべての操作は基本的に PDO に置き換えられました

とても嬉しいです

テクノロジーは死んだ、しかし人々は生きている。古いテクノロジーを活用して新しい未来を創造します。

この記事の参考文献:

著作権

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/923412.html技術記事私が PDO に夢中になったのは、データベース関連の知識にまったく関心がなかったためです。数か月前、誤って次のコードを開いてしまいました。 苦情が書かれたのは N 年前です。あと、勉強にも必要だったので…

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