Skip to content

niotw/jsnpdo

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 

Repository files navigation

jsnpdo

##讓你快速使用PDO對MySQL做溝通

我的部落格

Jsnpdo 影片:youtube 範例教學

Changelog 點我查看

###說明書

id 他們得到同樣的值。
// 為什麼要用 ArrayObject ?
// 您不覺得打字 $DataInfo->id 手指頭快多了嗎?

/** 連接資料庫 **/
    Jsnpdo::connect("mysql", "localhost", "資料庫名稱", "使用者帳號", "密碼");


/** 多筆查詢 原名select() **/
    $DataList                 =    Jsnpdo::sel("欄位", "資料表名稱", "其他條件");       // 無資料顯示0 | ArrayObject
    $DataList                 =    Jsnpdo::sel("欄位", "資料表名稱", "其他條件", 1);    // debug 字串、中斷
    $DataList                 =    Jsnpdo::sel("欄位", "資料表名稱", "其他條件", str);  // debug 字串、查詢顯示、中斷
    $DataList                 =    Jsnpdo::sel("欄位", "資料表名稱", "其他條件", chk);  // debug 字串、查詢顯示、不中斷
    //ex.
    $w->id                    =    Jsnpdo::quo($_POST['id']);
    $w->title                 =    Jsnpdo::quo($_POST['title']);                        
    $DataList                 =    Jsnpdo::sel("*", "jsntable", "where id = $w->id and title = $w->title");
    $w                        =    NULL;        
    if ($DataLsit != 0) foreach ($DataList as $DataInfo)
    {
        echo $DataInfo->id;
        echo $DataInfo->title;
        echo $DataInfo->content;
    }
    $DataList                 =    Jsnpdo::sel("欄位", "資料表名稱", "其他條件");            


/** 強制指定單筆查詢, 方法如同 sel()。原名 select_one()  **/
    $DataInfo                 =    Jsnpdo::selone("欄位", "資料表名稱", "其他條件");    
    $DataInfo                 =    Jsnpdo::selone("欄位", "資料表名稱", "其他條件", 1);    
    $DataInfo                 =    Jsnpdo::selone("欄位", "資料表名稱", "其他條件", str);    
    $DataInfo                 =    Jsnpdo::selone("欄位", "資料表名稱", "其他條件", chk);    
    if ($DataInfo != 0)         echo $DataInfo->id;


/** 查詢快取 **/    
    Jsnpdo::$cache_life       =     3;   // 快取存活秒數
    Jsnpdo::cache(true);                 // 開始快取
    $DataList                 =    Jsnpdo::selone("count(id) as `num_1`", "jsntable", "");    // 查詢
    Jsnpdo::cache(false);                // 停止快取


/** 利用陣列新增。原名 isnert() **/
    $ary['id']                =    NULL;                                               // NULL 將自動調用 Jsnpdo::quo($_POST['id']);
    $ary['title']             =    Jsndpo::quo("標題");                                // 自動添加 '' 並自動解決 sql injection 攻擊
    $ary['content']           =    Jsndpo::quo("sql injection");                       // 自動添加 '' 並自動解決 sql injection 攻擊
    $result                   =    Jsnpdo::iary("資料表名稱", $ary, "POST或GET");      // 正常執行
    $result                   =    Jsnpdo::iary("資料表名稱", $ary, "POST或GET", 1);   // debug 字串、中斷
    $result                   =    Jsnpdo::iary("資料表名稱", $ary, "POS或GETT", str); // debug 字串、事先查詢顯示、中斷


/** 利用陣列修改,原名 update() **/
    $w->id                    =    Jsnpdo::quo(100);
    $w->owner                 =    Jsnpdo::quo("張先生");
    $ary['id']                =    NULL;                            // NULL 將自動調用 Jsnpdo::quo($_POST['id']);
    $ary['title']             =    Jsndpo::quo("標題");             // 自動添加 '' 並自動解決 sql injection 攻擊
    $ary['content']           =    Jsndpo::quo("sql injection");    // 自動添加 '' 並自動解決 sql injection 攻擊


      
    $result                   =    Jsnpdo::uary("資料表名稱", $ary, "POST或GET", "where id = $w->id and owner = $w->owner"); // 執行    
    $result                   =    Jsnpdo::uary("資料表名稱", $ary, "POST或GET", "條件", 1);     // debug 字串、中斷
    $result                   =    Jsnpdo::uary("資料表名稱", $ary, "POST或GET", "條件", str);   // debug 字串、事先查詢顯示、中斷


/** 刪除 **/
    $w->id                    =    Jsnpdo::quo(1);
    // 限制 delete 已經自訂 where 條件,避免誤刪整個資料庫。仍要使用就使用 1 = 1
    $result                   =    Jsnpdo::delete("資料表名稱", "1 = 1");
    $result                   =    Jsnpdo::delete("資料表名稱", "1 = 1", 1);                    // debug 字串、中斷
    $result                   =    Jsnpdo::delete("資料表名稱", "and id = $w->id", str);        // debug 字串、事先查詢顯示、中斷


/** 清空 **/
    $result                   =    Jsnpdo::truncate("資料表名稱");


/** 強大的過濾並自動添加 '' **/
    Jsnpdo::quo();  //等於PHP的 PDO::quote()


/** 除錯的CSS樣式 '' **/
    Jsnpdo::$debug_style      =    "position";


/** 在任何的query指令,不運行,而返回你下的 SQL 指令。預設false **/
    Jsnpdo::$get_string       =    1;       // true:回傳SQL字串並終止query  false: 不回傳,並運行query     


/** PDO 的 query(); 執行SQL 方法 **/
    Jsnpdo::query($sql, $status_debug);     // $status_debug 有 1 或 NULL。 1 啟用debug 字串、中斷


/** 查詢後顯示剛取得的數量 **/
    Jsnpdo::$select_num;


/** 快取存活時間**/
    Jsnpdo::$cache_life       =     3; 


/** 開始或關閉快取**/
    Jsnpdo::cache(true  | false); 


/** 得知目前查詢的指令,是設定快取(set)?還是讀取快取(get)?**/
    Jsnpdo::cache_set_get(); 

?>
//查詢並自動解決 sql injection
    $w->id                     =    Jsnpdo::quo(1);
    $DataInfo                  =    Jsnpdo::selone("*", "jsntable", "where id = $w->id");

//新增
    $_POST['title']            =    "經由POST的標題";
    $ary['id']                 =    NULL;
    $ary['title']              =    NULL;
    $result                    =    Jsnpdo::iary("jsntable", $ary, "POST");

//修改
    $_POST['content']          =    "經由POST的內容" . time();
    $w->id                     =    Jsnpdo::quo(1);
    $ary['title']              =    "更動標題";
    $ary['content']            =    NULL;
    $result                    =    Jsnpdo::uary("jsntable", $ary, "where id = $w->id", "POST");
    

或一般的實體物件寫法

    $ary['title']              =    NULL;
    $result                    =    $j->iary("jsntable", $ary, "POST");

若查詢需要快取

    Jsnpdo::$cache_life        =    3;  //快取存活時間
    Jsnpdo::cache(true);                //開始快取
    $DataList                  =    Jsnpdo::selone("count(id) as `num_1`", "jsntable", "");
    Jsnpdo::cache(false);               //停止快取

###使用方法

  • 前往 jsnpdo/jsnpdo/Demo.php
  • include_once 對應你的所有路徑設定
  • 設定你的資料庫資料Jsnpdo::connect("mysql", "localhost", "ci_jsn", "root", "");
  • 重新整理就會看到極簡的單元測試
    資料表建立成功
    新增了1筆資料
    新增了1筆資料
    新增了1筆資料
    最後新增的編號是:3
    一次多筆執行成功
    查詢多筆列表、取得總數成功 
    查詢單筆資料成功 
    取得查詢快取的狀態成功:get
    查詢快取成功 
    修改1筆成功 
    刪除1筆成功 
    清空成功 
    刪除資料表成功
    傳統寫法
    
    新增成功 
    查詢成功
    查詢單筆成功
    修改成功 
    刪除成功 
    一次多筆新增成功
    若使用快取,可了解目前的快取狀態是:get
    快取查詢成功
    若使用快取,可了解目前的快取狀態是:get
    快取查詢成功
    清空成功
    刪除資料表成功

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published