php フレームワークの記事シリーズ mysql データベースを実装する方法

WBOY
リリース: 2016-07-29 09:00:44
オリジナル
1149 人が閲覧しました

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

  1. 使いやすい

直接 SQL ステートメント操作を使用します。 SQL ステートメントを作成できる限り、その他の学習コストはかかりません。

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

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

最初の SQL ステートメントが実行されるまで、データベースに接続されず、新しい db オブジェクトも作成されません。

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

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

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

1

2

3

4

5

6

7

8

9

10

11

12

//値を読み取る//读一个值

Dba::readOne($sql);

//读一行

Dba::readRowAssoc($sql);

//读所有行

Dba::readAllAssoc($sql);

//读所有行的第一列

Dba::readAllOne($sql);

//在实际业务场景中,经常会有分页读取部分数据的情况。

//只要一个函数即可返回指定页码的数据内容和数据总条数

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

ps:以上部分函数可以提供一个map函数对返回数组的每一行进行加工处理。

写语句。为什么要区分read和write呢,显然可以扩展做到控制读写分离,双写等功能。

在有各种云数据库和数据库中间件的今天,在数据库层实现是更好的选择。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

Dba::write($sql);

/* 直接插入或更新kv形式的array数组

会自动对value进行转义,也支持array类型的值。

如果自己写sql语句要注意使用addslashes或mysql_real_escape_string来保证安全

*/

Dba::insert($table$insert);    

Dba::update($table$update$where);

/*

    对批量插入数据有更高的效率

    当然过多的行数应该用array_chunk来分批插入。

*/

Dba::insertS($table$inserts);

2. 事务

使用pdo支持事务

//行を読み取る code>Dba::readRowAssoc($sql);

1

2

3

Dba::beginTransaction();

Dba::commit();

Dba::rollBack();

Dba::readOne($sql);

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

Dba::readAllAssoc($sql);

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

Dba::readAllOne($sql);

//実際のビジネス シナリオでは、ページングが頻繁に発生します。読み取り部 データの状況。

//指定されたページ番号のデータ内容とデータ項目の総数を返す関数は 1 つだけです🎜🎜Dba::readCountAndLimit( >$sql $page$limit); 🎜🎜🎜 🎜🎜🎜🎜 ps: 上記の関数の一部は、返された配列の各行を処理するマップ関数を提供できます。 🎜🎜文章を書きます。なぜ読み取りと書き込みを区別する必要があるのでしょうか? 明らかに、読み取りと書き込みの分離、二重書き込み、その他の機能を制御するために拡張できます。 🎜🎜現在、さまざまなクラウド データベースやデータベース ミドルウェアが存在するため、データベース層での実装がより良い選択となります。 🎜🎜🎜🎜🎜🎜1🎜🎜2🎜🎜3🎜🎜4🎜🎜5🎜🎜6🎜🎜7🎜🎜8🎜🎜9🎜🎜10🎜🎜11🎜 🎜12🎜🎜13🎜🎜14🎜🎜15🎜 🎜🎜🎜🎜Dba::write($sql);🎜🎜/* kv の配列配列を直接挿入または更新しますform 🎜🎜 は値を自動的にエスケープし、配列型の値もサポートします。 🎜🎜独自の SQL ステートメントを作成する場合は、安全性を確保するために addslashes または mysql_real_escape_string を使用するように注意してください。🎜🎜*/🎜🎜Dba:: insert(🎜🎜 code><code>$table, $insert 🎜🎜); Dba::update($table, $update, $ where);🎜🎜<code>/*🎜🎜 データのバッチ挿入の効率が高くなります🎜 🎜 もちろん、多すぎる行は array_chunk を使用してバッチで挿入する必要があります。 🎜🎜*/🎜🎜Dba::insertS($table, $ ); 🎜🎜🎜🎜🎜🎜🎜2. >Dba::beginTransaction();🎜🎜Dba::commit();🎜🎜Dba::rollBack();🎜🎜🎜🎜🎜🎜 🎜3. 長時間実行 🎜🎜 swoole サービス、バックグラウンド ワーカーなど、長時間実行が必要な一部のシナリオでは、データベース接続がタイムアウトになる可能性があります。 🎜🎜データベース接続がタイムアウトしたことが判明すると、DBA は自動的に再接続を試みます。 🎜🎜 🎜 上記では、PHP フレームワーク シリーズの記事で mysql データベースを実装する方法を、関連する内容も含めて紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。 🎜 🎜 🎜
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!