<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          EasyDBPHP 數(shù)據(jù)庫操作類

          聯(lián)合創(chuàng)作 · 2023-09-30 02:22

          EasyDB是一個基于PDO的數(shù)據(jù)庫操作類,它使用了PDO的精髓--預編譯--的思想,從而在根源上杜絕SQL注入的危險。
          現(xiàn)在網(wǎng)上的大多數(shù)據(jù)庫封裝類,甚至一些知名的框架都僅僅只是包裝一下數(shù)據(jù)庫的操作,內(nèi)部還是使用拼裝字符串的方式執(zhí)行語句!
          這也太LOW了!而且為了防止SQL注入,還為此增加了超多的格式驗證和數(shù)據(jù)過濾,驗證影響代碼維護和執(zhí)行的效率。
          而EasyDB是優(yōu)雅的,它繼承自PDO,沒有破壞PDO的任何方法,只是在此基礎上增加一些易于使用操作方法和簡單的鏈式操作,
          它的的設計初衷就是完善和簡化MySQL等數(shù)據(jù)庫的相關操作。引入它,你仍可以直接像使用PDO那樣使用它。


          ##使用方法##
          在你的項目中引入EasyDB.php文件之后,你就可以像這樣使用

          $config = array(
           'host' => '127.0.0.1',//數(shù)據(jù)庫連接ip,默認本機
           'port' => 3306,//端口號,默認3306
           'username' => 'root',//用戶名,默認root
           'password' => '',//密碼,默認空
           'dbname' => 'test',//數(shù)據(jù)庫名字
           'charset' => 'utf8'//字符集,默認utf8
          );
          
          
          $db = new EasyDB($config);
          $sql = 'select * from table where id = ?';
          $result = $db->queryOne($sql, array(2));
          好的,你現(xiàn)在就已經(jīng)獲取到你想要的結(jié)果了!同樣,您也可以這樣寫:
          $db = new EasyDB($config);
          $sql = 'select * from table where id = :id';
          $array = array(
                ':id' => 2
          );
          $result = $db->queryOne($sql, $array);


          我強烈建議你不要在直接用變量拼裝SQL語句,這是危險和不明智的,因為已經(jīng)有PDO預編譯這么好的機制,為什么不用它呢?就像上面的例子,用它是不是很簡單。

          除了常用的增刪改查方法,EasyDB還封裝了一些簡單的鏈式操作,注意:這里只是一些簡單的鏈式操作,對于復雜的語句還是執(zhí)行SQL語句來的痛快。
          $db = new EasyDB();
          $db->table_select('table')->field('name')->where('id=?')->go(array(2));
          是的。鏈式操作就是這么簡單。


          ###使用手冊##
          提示:一般在SQL語句中使用了占位符,那么緊接著就應該傳入一個綁定數(shù)組,如:
          例1:
          $sql = 'select * from my';
          $result = $db->queryOne($sql);//因為SQL語句中沒有占位符,所以只需要傳入$sql參數(shù)即可
          例2:
          $sql = 'select * from my where id=?';
          $result = $db->queryOne($sql, array(4));//這里的第二個參數(shù)array(4)就是將數(shù)組中的值4傳給之前占位的?
          例3:
          $sql = 'select * from my where name=? and age=?';
          $result = $db->queryOne($sql, array('blue', 18));//這里的第二個參數(shù)array('blue', 18)的值分別對應SQL語句中的兩個?
          例4:
          $sql = 'select * from my where name=:name and age=:age';
          $data = array(
          ':name' => 'blue',
          ':age'  => '18
          );
          $result = $db->queryOne($sql, $data);//這是另外一種占位方式
          


          如果你是手寫SQL黨,對于查詢(select)可以這樣使用:
          例1:
          $sql = 'select * from my where id=?';
          $result = $db->queryOne($sql, array(4));
          例2:
          $sql = 'select * from my';
          $result = $db->queryAll($sql);
          其中queryOne()返回一維數(shù)組(即一條記錄),queryAll()返回二維數(shù)組(即多條記錄)

          對于/insert/delete/update,可以這樣使用:
          例1:
          $sql = 'insert into table set name=? , age=?';
          $db->querySql($sql, array('blue', 18));
          例2:
          $sql = 'update table where id=?';
          $db->querySql($sql, array(4));
          一些復雜的語句,可以直接這樣使用:
          $sql = '....';//復雜的語句
          $stmt = $db->queryObj($sql);//這里會返回一個SQL語句對象
          然后就可以執(zhí)行一些操作,如 $stmt->rowCount();
          再次提醒:EasyDB是直接繼承于PDO的,所以就算EasyDB不能滿足你的使用,直接用PDO的方法是完全可以的。


          如果你喜歡簡化的方式使用SQL,那就可以這樣:
          對于select:
          $data = array(
          ':name' => 'blue',
          ':age'  => '18
          );
          $db->table_select('table')->where('name=:name and age=:age')->go($data);//對于查詢,使用鏈式的方式
          對于insert:
          $data = array(
          'name' => 'blue',
          'age'  => '18
          );
          $db->insert('table', $data);//$data中的鍵為數(shù)據(jù)庫字段名,值為對應的數(shù)值
          對于delete:
          $where = array(       
          'name' => 'blue',
          'age'  => '18
          );
          $db->delete('table', $where);//$where之間的關系為and
          對于update:
          $where = array(
          'id' => 4
          );
          $data = array(
          'name' => 'blue',
          'age'  => '18
          );
          $db->update('table', $data, $where);//$where之間的關系為and
          如果insert/update/delete的條件比較復雜,可以使用鏈式方式,如:
          $data = array(
          ':name' => 'blue',
          ':age'  => '18,
          ':source' => 100
          );
          $db->table_update('table')->where('name=:name or age=:age')->setdata('source=:source')->go($data);

          另外EasyDB還獨立了一個方法,count(),用于計算條目總數(shù),如:
          $db->count('table');//table表的總條目
          $db->count('table', 'age=?' , array(18));//符合條件的總條目

          好了,具體的一些方法大家可以直接看源碼,我在其中都有注釋,如果有什么問題可以直接微博@deng-dev (http://weibo.com/fensiyun)


          瀏覽 9
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  天天干天天射天天舔麻豆 | 影音先锋福利 | 亚洲爽图| 午夜福利精品 | 福利网导航|