實現PHP框架系列文章 6 mysql資料庫方法

2022-10-06 09:39:09 字數 1364 閱讀 5878

實現乙個mysql資料庫封裝需要考慮的問題

1.使用方便性

採用直接sql語句操作方式。只要會寫sql語句,那麼將沒有其他學習成本。

uctphp框架提供的dba輔助封裝類,用會之後將愛不釋手。

使用前需要顯示初始化並連線到資料庫嗎,當然不需要。

直到執行第一條sql語句之前,都不會去連線資料庫,甚至不會new乙個db物件。

dba將會在合適的時機去連線資料庫並執行初始化字元編碼操作。

查詢語句。不需要new乙個查詢構造器也不提供鏈式操作方式,那樣複雜且低效。

dba提供了以下的查詢輔助函式。

//讀乙個值

dba::readone($sql);

//讀一行

dba::readrowassoc($sql);

//讀所有行

dba::readallassoc($sql);

//讀所有行的第一列

dba::readallone($sql);

//在實際業務場景中,經常會有分頁讀取部分資料的情urcepgbbo況。

//只要乙個函式即可返回指定頁碼的資料內容和資料總條數

dba::rwww.cppcns.comeadcounwww.cppcns.comtandlwww.cppcns.comimit($sql, $page, $limit);

ps:以上部分函式可以提供乙個map函式對返回陣列的每一行進行加工處理。

寫語句。為什麼要區分read和write呢,顯然可以擴充套件做到控制讀寫分離,雙寫等功能。

在有各種雲資料庫和資料庫中介軟體的今天,在資料庫層實現是更好的選擇。

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支援事務

dba::begintransaction();

dba::commit();

dba::rollback();

3. 長時間執行

在一些需要長時間執行的場景如swoole服務,後台worker等,可能會出現資料庫連線超時的情況。

當發現資料庫連線超時,dba將會自動嘗試重連。

本文位址:

mysql資料庫優化6 Mysql 資料庫優化6

1 為什麼索引能提高查詢效率 因為建立了索引的字段的資料都是有序資料,查詢有序資料無需遍歷整個資料,非常快,理解這一點是非常重要滴!2 索引的設計原則 1 唯一性索引。建立唯一性索引可以更快的檢索出資料,如學生表中學號是唯一的,將學號字段建立索引可以很快的確定某條記錄。2 為經常需要排序 分組 連線...

php連線mysql資料庫最簡單的實現方法

在連線mysql資料庫之前,您必須指定以下資訊 mysql資料庫名稱 表示要連線的資料庫的名稱。使用者名稱和密碼 指定用於連線mysql資料庫伺服器的mysql使用者的使用者名稱和密碼。該帳戶必須具有足夠的許可權才能訪問上面指定的資料庫。我們將使用 本地mysql資料庫伺服器,這樣dsn是local...

php實現mysql資料庫備份類

1 例項化dbbak需要告訴它兩件事 資料伺服器在 connectid 備份到哪個目錄 backupdir require once dbbak.php require once tablebak.php connectid mysql connect localhost root 123456 b...