1、saemysql沒有提供完整的增刪查改方法,插入資料、刪除資料、更新資料都只能自己寫完整的sql然後在使用runsql 方法執行;
2、要先初始化$mysql = new saemysql();,以後要在其它函式內進行mysql操作的話,都不能忘了把$mysql 列入全域性變數;
3、我不贊成在具體的業務**中直接使用sae提供的類,以後要是把應用遷移出sae,會比較麻煩。
所以我自己把saemysql重新封裝了一下,自己寫了個mysql操作類。
**如下:
//by kuigg www.kuigg.com這個類不需要例項化,呼叫裡面的方法的時候只需要以kuigg_db::function的形式就可以。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; }
}
下面解釋一下這裡面的幾個方法:
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』 => 『刪:delete(tb,$terms = null,getarows = false,$limit = 0)$uid = kuigg_db::insert(『user』, $arr, true);
需要提供的幾個引數分別是$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本身定義的,預設就行了。定義檔案請求的型別和當前請求成功...
寫乙個國產的作業系統?
如果我要寫乙個國產的作業系統,以下幾點也許可以考慮一下 中文程式設計。我們能不能做乙個用中文 寫成的作業系統呢?是的,中文 不僅僅要能顯示中文,處理中文,還要求作業系統的源 也是盡可能的用中文來寫。為了做成這件事,看來下面的事情是逃不掉的 寫乙個支援中文的編譯器 彙編,高階語言 乙個支援中文的控制台...