為SAE寫的乙個mysql操作類

2021-06-01 07:53:42 字數 3063 閱讀 1192

1、saemysql沒有提供完整的增刪查改方法,插入資料、刪除資料、更新資料都只能自己寫完整的sql然後在使用runsql 方法執行;

2、要先初始化$mysql = new saemysql();,以後要在其它函式內進行mysql操作的話,都不能忘了把$mysql 列入全域性變數;

3、我不贊成在具體的業務**中直接使用sae提供的類,以後要是把應用遷移出sae,會比較麻煩。

所以我自己把saemysql重新封裝了一下,自己寫了個mysql操作類。

**如下:

//by kuigg  www.kuigg.com

class kuigg_db 」; }

function getdata ($arr , $separator = 『,』) `=』』」;

$s = $separator; }

return $str; }

function count ($tb , $fields = 『*』 , $terms = 」)) from `` where  」;

return $o->getvar($query); }

function fetchdata ($tb , $fields = 『*』 , $terms = 」) from `` 」;

return $o->getdata($query); }

function fetchrow ($tb , $fields = 『*』 , $terms = 」) from `` 」;

return $o->getline($query); }

function fetchitem ($tb , $field , $terms = 」) from `` 」;

return $o->getvar($query); }

function insert($tb, $arr,  $getinsertid = false, $replace = false) `` set 」;

$return = $o->runsql($query);

return $getinsertid ? $o->lastid() : $return; }

function insert_id()

function update($tb, $arr,  $terms = null , $getarows = false , $low_priority = false) `` set where 」;

$return = $o->runsql($query);

return $getarows ? $o->affectedrows() : $return; }

function delete($tb, $terms = null,$getarows = false, $limit = 0) ` where 「.($limit ? 「limit 」 : 」);

$return = $o->runsql($query);

return $getarows ? $o->affectedrows() : $return; }

function affected_rows()

function query($query)

function &in()

return $object; }

}

這個類不需要例項化,呼叫裡面的方法的時候只需要以kuigg_db::function的形式就可以。

下面解釋一下這裡面的幾個方法:

tbname:這是處理表名的方法,給表明增加字首用。

重點是提供了完整 增刪查改方法:

增:insert(tb,$arr,$getinsertid = false,$replace = false)

需要提供的幾個引數分別是$tb:需要插入的表名;$arr:把插入的資料按照key=欄位名,value=值的形式構造的陣列;$getinsertid:是否獲取新插入的id,預設為false不獲取,如果設為true就會返回id值;$replace:是否以替代方式插入,預設為false,一般也用不到。

示例:

$arr = array(『user』 => 『kuigg』 , 『email』 => 『[email protected]』 , 『website』 => 『

$uid = kuigg_db::insert(『user』, $arr, true);

刪:delete(tb,$terms = null,getarows = false,$limit = 0)

需要提供的幾個引數分別是$tb:需要刪除資料的表名;$terms:刪除的條件;$getarows:是否獲取被刪除的行數,預設為false不獲取,如果設為true就會此次操作刪除的行數;$limit:刪除的行數,預設0即刪除所有符合條件的行。

示例:

$rownum = kuigg_db::delete(『user』, 「`uid` = 』1′」, true);
查:提供了4個方法:

fetchdata ($tb , $fields = 『*』 , $terms = 」)

fetchrow ($tb , $fields = 『*』 , $terms = 」)

fetchitem ($tb , $field , $terms = 」)

count ($tb , $fields = 『*』 , $terms = 」)

分別可以取得多維陣列、單維陣列、單項值、統計數目。

改:update(tb,$arr,$terms = null ,$getarows = false ,$low_priority = false)

需要提供的幾個引數分別是$tb:需要更新資料的表名;$terms:需要更新的條件;$getarows:是否獲取更新的行數,預設為false不獲取,如果設為true就會此次操作更新的行數。

$arr = array(『user』 => 『kuigg』 , 『email』 => 『[email protected]』 , 『website』 => 『

$rownum = kuigg_db::update(『user』, $arr, 「where uid = 』1′ 「, true);

用了這個類,將來如果把應用遷出,只需要把這個類修改一下就可以了。

為類寫乙個自己的堆

為什麼要建立自己的堆呢?有多方面原因 在c 中,我們用new操作符來分配類物件,用delete操作符來釋放它。通過對c 類的new和delete操作符進行過載,我們可以非常容易地將堆函式加以運用。總體來看,不為每乙個類建立堆的唯一優勢是不會有額外的效能和記憶體開銷。但是這些效能和記憶體開銷並不大,與...

python寫乙個服務 Python寫乙個服務

coding utf 8 import json from urllib.parse import parse qs from wsgiref.server import make server 定義函式,引數是函式的兩個引數,都是python本身定義的,預設就行了。定義檔案請求的型別和當前請求成功...

寫乙個國產的作業系統?

如果我要寫乙個國產的作業系統,以下幾點也許可以考慮一下 中文程式設計。我們能不能做乙個用中文 寫成的作業系統呢?是的,中文 不僅僅要能顯示中文,處理中文,還要求作業系統的源 也是盡可能的用中文來寫。為了做成這件事,看來下面的事情是逃不掉的 寫乙個支援中文的編譯器 彙編,高階語言 乙個支援中文的控制台...