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

WBOY
發布: 2016-07-29 09:00:28
原創
821 人瀏覽過

實作一個mysql資料庫封裝需要考慮的問題

1.使用方便性

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

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

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

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

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

查詢語句。不需要new一個查詢建構器也不提供鍊式操作方式,那麼複雜且低效。

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

//读一个值
Dba::readOne($sql);
//读一行
Dba::readRowAssoc($sql);
//读所有行
Dba::readAllAssoc($sql);
//读所有行的第一列
Dba::readAllOne($sql);
//在实际业务场景中,经常会有分页读取部分数据的情况。
//只要一个函数即可返回指定页码的数据内容和数据总条数
Dba::readCountAndLimit($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. 長時間可能會出現資料庫連線逾時的情況。

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


以上內容是小編給大家介紹的PHP框架系列文章(6)mysql資料庫方法,希望對大家有幫助!


以上就介紹了實作PHP框架系列文章6mysql資料庫方法,包含了方面的內容,希望對PHP教學有興趣的朋友有幫助。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板