ホームページ >バックエンド開発 >PHPチュートリアル >php フレームワークの実装方法シリーズ記事 [6] mysql データベース

php フレームワークの実装方法シリーズ記事 [6] mysql データベース

WBOY
WBOYオリジナル
2016-06-23 13:15:22843ブラウズ

mysql データベース パッケージを実装する際に考慮すべき問題

  1. 使いやすさ

ダイレクト SQL ステートメント操作メソッドを使用します。 SQL ステートメントを作成できる限り、その他の学習コストはかかりません。

uctphp フレームワークによって提供される DBA 補助カプセル化クラス。使用後は削除できません。

使用前に明示的に初期化してデータベースに接続する必要がありますか? もちろん必要ありません。

最初の SQL ステートメントが実行されるまで、データベースに接続したり、新しい db オブジェクトを作成したりすることはありません。

dba は適切なタイミングでデータベースに接続し、最初の文字エンコード操作を実行します。

クエリステートメント。新しいクエリ コンストラクターは必要なく、非常に複雑で非効率な連鎖操作メソッドも提供しません。

dba は以下のクエリ補助関数を提供します。

ps: の一部上記の関数は、返された配列の各行をマップ関数で処理します。

1

2

3

4

5

6

7

8

9

10

11

12

//値を読み取る

Dba::readOne( $sql );

// 1 行を読み取ります

Dba::readRowAssoc( $sql );

// すべての行を読み取ります

Dba::readAllAssoc( $sql );全行の最初の列を読み込む

Dba::readAllOne( $sql );

//実際のビジネスシーンでは、データの一部をページ単位で読み込むケースがよくあります。

//指定されたページ番号のデータ内容とデータ項目の総数を返すことができる関数は 1 つだけです

Dba::readCountAndLimit( $sql , $page , $limit );

文章を書きます。なぜ読み取りと書き込みを区別する必要があるのでしょうか? 明らかに、読み取りと書き込みの分離、二重書き込み、その他の機能を制御するために拡張できます。

現在、さまざまなクラウド データベースやデータベース ミドルウェアが存在するため、データベース層での実装がより良い選択となります。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

Dba::write( $sql );

/* kv 形式で配列配列を直接挿入または更新します

は値を自動的にエスケープし、配列型の値もサポートします。 squls独自のSQLステートメントを書く場合は、AddSlashesまたはMySQL_Real_Escape_Stringを使用して、安全を確保するように注意してください

より効率的にデータをバッチで挿入するために使用します

‐ より効率的にするために

に送信します

-

*/

Dba::insertS( $table , $inserts );

2. トランザクション

PDO を使用してトランザクションをサポートする

1

2

3

();

Dba::commit();

Dba ::rollBack ();

3. 長時間実行

swoole サービス、バックグラウンド ワーカーなど、長時間実行が必要な一部のシナリオでは、データベース接続がタイムアウトになる可能性があります。

データベース接続がタイムアウトしたことが判明すると、DBA は自動的に再接続を試みます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。