mysql データベース パッケージを実装する際に考慮すべき問題
使いやすさ
ダイレクト SQL ステートメント操作メソッドを使用します。 SQL ステートメントを作成できる限り、その他の学習コストはかかりません。
uctphp フレームワークによって提供される DBA 補助カプセル化クラス。使用後は削除できません。
使用前に明示的に初期化してデータベースに接続する必要がありますか? もちろん必要ありません。
最初の SQL ステートメントが実行されるまで、データベースに接続したり、新しい db オブジェクトを作成したりすることはありません。
dba は適切なタイミングでデータベースに接続し、最初の文字エンコード操作を実行します。
クエリステートメント。新しいクエリ コンストラクターは必要なく、非常に複雑で非効率な連鎖操作メソッドも提供しません。
dba は以下のクエリ補助関数を提供します。
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 ); |
文章を書きます。なぜ読み取りと書き込みを区別する必要があるのでしょうか? 明らかに、読み取りと書き込みの分離、二重書き込み、その他の機能を制御するために拡張できます。
現在、さまざまなクラウド データベースやデータベース ミドルウェアが存在するため、データベース層での実装がより良い選択となります。
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 を使用してトランザクションをサポートする
3. 長時間実行 swoole サービス、バックグラウンド ワーカーなど、長時間実行が必要な一部のシナリオでは、データベース接続がタイムアウトになる可能性があります。 データベース接続がタイムアウトしたことが判明すると、DBA は自動的に再接続を試みます。
|