天天看點

織夢dede資料庫類,二次開發

1銆佸緩鏁版嵁搴撳拰琛? -- ----------------------------

-- 琛?`dede_test`缁撴瀯

-- ----------------------------

DROP TABLE IF EXISTS `dede_test`;

CREATE TABLE `dede_test` (

`id` mediumint(8) NOT NULL AUTO_INCREMENT,

`name` char(60) NOT NULL DEFAULT '',

PRIMARY KEY (`id`)

) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=gbk;

-- ----------------------------

-- 鎻掑叆鍒?dede_test涓殑鏁版嵁

-- ----------------------------

INSERT INTO `dede_test` VALUES ('1', '娴嬭瘯鍚嶅瓧1');

INSERT INTO `dede_test` VALUES ('2', '杩欐槸绗簩涓?);

INSERT INTO `dede_test` VALUES ('3', '绗笁涓柦');

INSERT INTO `dede_test` VALUES ('4', '绗洓涓?);

2.杩炴帴鏁版嵁搴?鏌ヨ鏁版嵁琛? 聽聽聽 琛?dede_test"鎴戜滑宸茬粡鍒涘緩瀹屾垚浜?鎺ヤ笅鏉ユ垜浠杩炴帴鏁版嵁搴撲簡,鍏跺疄鏂規硶闈炲父绠€鍗?鎴戜滑鍦ㄧ綉绔欐牴鐩綍涓垱寤轟竴涓猼est.php鐨勬枃浠?杩欎釜鏂囦歡鏈€濂戒篃鐢╣bk鐨勭紪鐮?鍙互鐢ㄤ笓闂ㄧ殑缂栬緫鍣ㄦ潵鍒涘緩鏂囦歡.

聽聽聽 杩炴帴鏁版嵁搴撴渶绠€鍗曠殑鏂規硶灏辨槸寮曞叆include鏂囦歡澶逛笅闈㈢殑common.inc.php鏂囦歡,缂栬緫php浠g爜:

鍐欏叆浠ヤ笅鍐呭:

test.php

-------------------------------

<?php

聽聽聽 聽聽聽 require_once (dirname(__FILE__) . "/include/common.inc.php");

聽聽聽 聽聽聽 print_r($dsql);

?>

--------------------------------

聽聽聽 涓婇潰浠g爜灏辨槸灏嗕竴涓?dsql绫昏緭鍑?鎴戜滑鍐嶆墽琛屼笅杩欎釜鏂囦歡http://www.dedebbs.com/test.php(娉╠edebbs.com鍙槸鍦ㄦ湰鍦闆仛浜嗕釜瑙f瀽,鍏跺疄灏辨槸localhost),鎴戜滑鏌ョ湅婧愪唬鐮?鐪嬪埌涓嬮潰鐨勫唴瀹?

DedeSql Object

(

聽聽聽 [linkID] => Resource id #6

聽聽聽 [dbHost] => localhost

聽聽聽 [dbUser] => root

聽聽聽 [dbPwd] => 123456

聽聽聽 [dbName] => dedebbs

聽聽聽 [dbPrefix] => dede_

聽聽聽 [result] => Array

聽聽聽聽聽聽聽 (

聽聽聽聽聽聽聽聽聽聽聽 [me] => 0

聽聽聽聽聽聽聽 )

聽聽聽 [queryString] =>

聽聽聽 [parameters] => Array

聽聽聽聽聽聽聽 (

聽聽聽聽聽聽聽 )

聽聽聽 [isClose] =>

聽聽聽 [safeCheck] => 1

)

聽聽聽 杩欎釜灏辮鏄庢垜浠凡缁忔垚鍔熻繛鎺ユ暟鎹簱浜?[dbHost],[dbUser]...杩欎簺閮芥槸鏁版嵁搴撶殑鐩稿叧淇℃伅,涔熷氨鏄垜浠繚瀛樺湪閰嶇疆鏂囦歡涓殑\data\common.inc.php鍐呭,寮曞叆鏁版嵁搴撶被鐨勬椂鍊?榛樿灏辮鍒涘緩浜?dsql鎴栬€?db,鎵€浠ョ洿鎺ュ紩鍏ラ厤缃枃浠跺氨鍙互浜?

聽聽聽 鎺ヤ笅鏉ユ垜浠潵鍋氫竴涓畝鍗曠殑鏌ヨ鎿嶄綔,鎺ョ潃涓婇潰鐨勪唬鐮佹垜浠戶缁啓

test.php

-------------------------------

<?php

聽聽聽 require_once (dirname(__FILE__) . "/include/common.inc.php");

聽聽聽 if($dsql->IsTable('dede_test')){

聽聽聽 聽聽聽 //濡傛灉瀛樺湪dede_test琛? 聽聽聽 聽聽聽 //-------------------

聽聽聽 聽聽聽 //|聽聽聽 鏌ヨ涓€鏉¤褰?|

聽聽聽 聽聽聽 //|聽聽聽 GetOne()聽聽聽聽 |

聽聽聽 聽聽聽 //-------------------

聽聽聽 聽聽聽 //聽聽聽聽聽聽聽 鈫? 聽聽聽 聽聽聽 $row = $dsql->GetOne("SELECT * FROM dede_test WHERE id = 3");

聽聽聽 聽聽聽 print_r($row);

聽聽聽 }

?>

--------------------------------

聽聽聽 杩欓噷鎴戜滑鐢ㄤ簡$dsql绫葷殑2涓柟娉?IsTable()浠ュ強GetOne(),IsTable鍏堟潵鍒ゆ柇杩欎釜琛ㄦ槸鍚﹀瓨鍦?濡傛灉瀛樺湪鎴戜滑灏辯戶缁墽琛?浠栬繑鍥炵殑鏄竴涓猙ool鍊?濡傛灉瀛樺湪涓簍rue鍚﹀垯灏變負false.

鎺ヤ笅鏉ュ垽鏂鏋滄湁杩欎釜琛ㄥ瓨鍦?鍒欐垜浠氨鎵ц鏌ヨ鍗曟潯璁闆綍鐨勮繖涓繃绋?鍗矴etOne,閫氳繃甯姪鏂囨。鍙互鐭ラ亾:$arr = $db->GetOne($sql);涔熷氨鏄鏌ヨ鐨剆ql璇彞浼氫紶閫佸洖鏉ヤ竴涓暟缁?鎴戜滑杩愯test.php鐪嬩笅杩愯缁撴灉:

Array

(

聽聽聽 [id] => 3

聽聽聽 [name] => 绗笁涓柦

)

聽聽聽 杩欎釜璇存槑鎴戜滑鏌ヨdede_test杩欎釜琛╥d涓?鐨勬暟鎹垚鍔熶簡,杩斿洖浜嗕竴涓?row鏁扮粍,鍏朵腑灏卞瓨鏀句簡瀛楁鐨勫€?

褰撶劧鎴戜滑鍙互鐢╡cho $row['name'];鎴栬€?row['id']鏉ヨ緭鍑烘垜浠煡璇㈠嚭鏉ョ殑缁撴灉

Tip:鍏跺疄鎴戜滑鍙互娣卞叆鐨勭爺绌朵笅dedesql.class.php杩欎釜绫?258琛屽氨鏈夎繖涓柟娉?

聽聽聽 //鎵ц涓€涓猄QL璇彞,杩斿洖鍓嶄竴鏉¤褰曟垨浠呰繑鍥炰竴鏉¤褰? 聽聽聽 function GetOne($sql='',$acctype=MYSQL_ASSOC)

聽聽聽 {

聽聽聽 聽聽聽 global $dsql;

聽聽聽 聽聽聽 if($dsql->isClose)

聽聽聽 聽聽聽 {

聽聽聽 聽聽聽 聽聽聽 $this->Open(false);

聽聽聽 聽聽聽 聽聽聽 $dsql->isClose = false;

聽聽聽 聽聽聽 }

聽聽聽 聽聽聽 if(!empty($sql))

聽聽聽 聽聽聽 {

聽聽聽 聽聽聽 聽聽聽 if(!eregi("limit",$sql)) $this->SetQuery(eregi_replace("[,;]$",'',trim($sql))." limit 0,1;");//杩欓噷鐢ㄦ鍒欑湅鐪媗imit鏄惁瀛樺湪,濡傛灉涓嶅瓨鍦ㄧ殑璇濆氨鑷姩鍔犱笂limit 0,1杩欎釜鍐呭,鍏充簬limit鐨勪粙缁嶅彲浠ュ幓鐪嬬湅SQL鍏充簬杩欎釜鐨勪粙缁? 聽聽聽 聽聽聽 聽聽聽 else $this->SetQuery($sql);

聽聽聽 聽聽聽 }

聽聽聽 聽聽聽 $this->Execute("one");

聽聽聽 聽聽聽 $arr = $this->GetArray("one",$acctype);

聽聽聽 聽聽聽 if(!is_array($arr))

聽聽聽 聽聽聽 {

聽聽聽 聽聽聽 聽聽聽 return '';

聽聽聽 聽聽聽 }

聽聽聽 聽聽聽 else

聽聽聽 聽聽聽 {

聽聽聽 聽聽聽 聽聽聽 @mysql_free_result($this->result["one"]); return($arr);//娓呯┖璧勬簮,杩斿洖杩欎釜鏁扮粍

聽聽聽 聽聽聽 }

聽聽聽 }

3.娣卞叆鏌ヨ,缁х畫鐮旂┒SELECT

聽聽聽 鍒氭墠璁蹭簡鏌ヨ涓€鏉¤褰?鍏跺疄杩欎釜鏌ヨ涓€鏉¤褰曞彲浠ョ悊瑙d負鎴戜滑鍐呭椤墊煡璇竴绡囨枃绔?鍙槸鑾峰彇鍗曟潯璁闆綍骞跺皢鍐呭鏄劇ず鍑烘潵,浣嗗線寰€鎴戜滑缁忓父閬囧埌鐨勬槸鏌ヨ鍒楄〃,鍙妠dede:arclist/}鎴栬€厈dede:list/},鏌ヨ鍒楄〃鐨勮瘽娑夊強鍒版煡璇㈠鏉¤褰?

缁х畫淇敼浠g爜:

test.php

-------------------------------

<?php

聽聽聽 require_once (dirname(__FILE__) . "/include/common.inc.php");

聽聽聽 if($dsql->IsTable('dede_test')){

聽聽聽 聽聽聽 //濡傛灉瀛樺湪dede_test琛? 聽聽聽 聽聽聽 //-------------------

聽聽聽 聽聽聽 //|聽聽聽 鏌ヨ涓€鏉¤褰?|

聽聽聽 聽聽聽 //|聽聽聽 GetOne()聽聽聽聽 |

聽聽聽 聽聽聽 //-------------------

聽聽聽 聽聽聽 //聽聽聽聽聽聽聽 鈫? 聽聽聽 聽聽聽 $row = $dsql->GetOne("SELECT * FROM dede_test WHERE id = 3");

聽聽聽 聽聽聽 echo "鏌ヨid=3鐨勮褰?<br />鏄劇ず缁撴灉:";

聽聽聽 聽聽聽 print_r($row);

聽聽聽 聽聽聽 //-------------------

聽聽聽 聽聽聽 //|聽聽聽 鏌ヨ澶氭潯璁闆綍 |

聽聽聽 聽聽聽 //|聽聽聽 Execute()聽聽聽聽 |

聽聽聽 聽聽聽 //-------------------

聽聽聽 聽聽聽 //聽聽聽聽聽聽聽 鈫? 聽聽聽 聽聽聽 echo "<hr />鏌ヨdede_test琛ㄤ腑鐨勬墍鏈夎褰?<br />鏄劇ず缁撴灉:<br />";

聽聽聽 聽聽聽 $sql = "SELECT * FROM dede_test";

聽聽聽 聽聽聽 聽聽聽 $dsql->Execute('me',$sql);

聽聽聽 聽聽聽 聽聽聽 while($arr = $dsql->GetArray('me'))

聽聽聽 聽聽聽 聽聽聽 {

聽聽聽 聽聽聽 聽聽聽 聽聽聽 echo "id = {$arr['id']} ,name = {$arr['name']}<br />";

聽聽聽 聽聽聽 聽聽聽 }

聽聽聽 }

?>

--------------------------------

鎴戜滑杩愯test.php鐪嬪埌鏄劇ず浠ヤ笅鐨勫唴瀹?

鏌ヨdede_test琛ㄤ腑鐨勬墍鏈夎褰?

鏄劇ず缁撴灉:

id = 1 ,name = 娴嬭瘯鍚嶅瓧1

id = 2 ,name = 杩欐槸绗簩涓? id = 3 ,name = 绗笁涓柦

id = 4 ,name = 绗洓涓?

聽聽聽 杩欎釜璇存槑鎴戜滑宸茬粡鎴愬姛灏嗚〃dede_test涓殑鏁版嵁杈撳嚭,褰撶劧涓昏鏄墽琛屼簡閭d釜"SELECT * FROM dede_test",杩欐槸涓€涓渶绠€鍗曠殑sql鏌ヨ璇彞,褰撶劧涔熻兘澶熺敤鍒皁rder by杩欎簺鎺掑簭鎴栬€呮潯浠跺幓鏌ヨ,璇︾粏鍙互鍙傝€僺ql鐩稿叧鍐呭.

聽聽 鍚屾椂杩欓噷闇€瑕佽鏄庣殑鏄繖閲岄櫎浜嗙敤$dsql->GetArray('me')鏉ヨ幏鍙栧唴瀹瑰埌鏁扮粍,杩樺彲浠ョ敤$dsql->GetObject("me")鑾峰彇鍐呭鍒闆璞?涓嶈繃璋冪敤鏂規硶鏈変簺涓嶅悓:

涓昏杩欓噷閫氳繃$dbobj->fieldname鏉ヨ皟鐢ㄦ煡璇㈠嚭鏉ョ殑鏁版嵁

聽聽聽 聽聽聽 聽聽聽 while($dbobj = $dsql->GetObject('me'))

聽聽聽 聽聽聽 聽聽聽 {

聽聽聽 聽聽聽 聽聽聽 聽聽聽 echo "id = {$dbobj->id} ,name = {$dbobj->name}<br />";

聽聽聽 聽聽聽 聽聽聽 }

tips:杩欓噷鏌ヨ瀹屼簡鍏跺疄杩樺彲浠ョ敤$dsql->GetTotalRow("me")鏉ヨ幏鍙栦笅鏌ヨ鍑烘潵鐨勬€繪暟.

4.鎻掑叆鍒犻櫎,涔熻鐢ㄥ埌SQL

聽聽聽 涓婇潰鎴戜滑浠嬬粛浜嗗浣曠敤dsql鏉ユ煡璇㈡暟鎹?涓昏鏈夎幏鍙栧崟鏉¤褰曞拰鑾峰彇澶氭潯璁闆綍2绉?鎺ヤ笅鏉ユ垜浠潵浜嗚В涓嬩嬌鐢╠sql鍏朵粬鐗規€ф潵涓烘垜浠殑test.php鍔犲叆娣誨姞鍐呭鍜屽垹闄ゅ唴瀹圭殑鍔熻兘.

聽聽聽 鍏堟潵浜嗚В涓嬫彃鍏ユ暟鎹簱鐨勬搷浣?鎴戜滑鍏堝仛涓€涓〃鍗?杩欎釜琛ㄥ崟鐢ㄤ簬鎻愪氦鏁版嵁name鐨?琛ㄥ崟浠g爜濡備笅:

<hr />

鐢ㄤ簬鎻愪氦鏁版嵁鐨勮〃鍗?<br />

<form action="test.php" type="post">

聽聽聽 <input type="hidden" name="dopost" value="save">

聽聽聽 鍚嶇О:<input type="text" name="name" value="">

聽聽聽 <input name="鎻愪氦" type="submit" value="鎻愪氦">

</form>

聽聽聽 杩欓噷鎴戜滑鐢ㄤ簡涓€涓殣钘忓煙dopost鏉ュ瓨鏀炬搷浣滄柟娉?杈撳叆妗唍ame鐢ㄦ潵瀛樻斁杈撳叆鏁版嵁,鐒跺悗浼犻€掔粰褰撳墠椤甸潰,鍐嶈繘琛屽鐞?杩欐椂鍊欐垜浠渶瑕佸湪test.php涓姞鍏ラ儴鍒嗙殑琛ㄥ崟澶勭悊鎿嶄綔:

聽聽聽 聽聽聽 //-------------------

聽聽聽 聽聽聽 //|聽聽聽 琛ㄥ崟澶勭悊杩囩▼ |

聽聽聽 聽聽聽 //|聽聽聽 Save()聽聽聽聽 |

聽聽聽 聽聽聽 //-------------------

聽聽聽 聽聽聽 //聽聽聽聽聽聽聽 鈫? 聽聽聽 empty($dopost)? "" : $dopost;

聽聽聽 if($dopost == "save"){

聽聽聽 聽聽聽 //濡傛灉鎵ц鎻掑叆鎿嶄綔

聽聽聽 聽聽聽 $sql = "INSERT INTO `dede_test` (`name`) VALUES ('{$name}')";

聽聽聽 聽聽聽 $dsql->ExecuteNoneQuery($sql); //鎵ц杩欎釜鎻掑叆璇彞

聽聽聽 聽聽聽 $lastInsertID = $dsql->GetLastID(); //鑾峰彇鎻掑叆鍚庣殑鏈€鍚庣殑ID,鐒跺悗鍐嶄紶缁欎笅涓€涓〉闈? 聽聽聽 聽聽聽 ShowMsg("鎴愬姛澧炲姞涓€鏉¤褰曞唴瀹癸紒","test.php?id={$lastInsertID}");

聽聽聽 聽聽聽 exit();

聽聽聽 }

聽聽聽 杩欓噷涓昏鏄竴涓狪NSERT INTO 璇彞,鐒跺悗閫氳繃$dsql鐨凟xecuteNoneQuery鏂規硶鏉ユ墽琛岃繖涓搷浣?骞朵笖鑾峰彇鎻掑叆鏁版嵁鏈€鍚庝竴涓猧d鍐嶅皢鍏朵紶閫掔粰涓嬩竴涓〉闈互渚塊珮浜樉绀?

聽聽聽 鎴戜滑鍙互鍦ㄧ紪杈戞涓彃鍏ヤ竴鏉℃暟鎹潵娴嬭瘯涓?鐪嬬湅鎻掑叆鏁版嵁鍚庣殑杩斿洖缁撴灉锛?

鍏跺疄鍒犻櫎鐨勬搷浣滀篃鏄姝?鎴戜滑鍙渶瑕佺◢寰仛涓慨鏀瑰氨鍙互浜?澧炲姞涓€涓猟opost鎿嶄綔涓篸el鐨勫垽鏂?鐒跺悗鍦ㄦ樉绀烘暟鎹悗闈㈠鍔犱竴涓秴閾炬帴,灏唅d浠et鏂瑰紡杩涜浼犻€?骞舵渶鍚庤繘琛屽鐞?

聽聽聽 涓嬮潰鏄垜浠慨鏀瑰驚鐜煡璇㈣緭鍑虹殑閮ㄥ垎鍐呭,鏈夊涓嬩慨鏀?

聽聽聽 聽聽聽 聽聽聽 while($dbobj = $dsql->GetObject('me'))

聽聽聽 聽聽聽 聽聽聽 {

聽聽聽 聽聽聽 聽聽聽 聽聽聽 if($id==$dbobj->id){

聽聽聽 聽聽聽 聽聽聽 聽聽聽 //濡傛灉浼犻€掔殑id鍊煎拰鏌ヨ鍊肩浉鍚?鍒欓珮浜樉绀烘渶鍚庝竴鏉℃彃鍏ヨ褰? 聽聽聽 聽聽聽 聽聽聽 聽聽聽 聽聽聽 echo "<font color='red'>id = {$dbobj->id} ,name = {$dbobj->name}</font> <a href='test.php?dopost=del&id={$dbobj->id}'>[鍒犻櫎]</a>聽聽聽 <br />";//杩欓噷澧炲姞浜嗕竴涓垹闄ょ殑瓒呴摼鎺? 聽聽聽 聽聽聽 聽聽聽 聽聽聽 }else{

聽聽聽 聽聽聽 聽聽聽 聽聽聽 聽聽聽 echo "id = {$dbobj->id} ,name = {$dbobj->name} <a href='test.php?dopost=del&id={$dbobj->id}'>[鍒犻櫎]</a><br />";

聽聽聽 聽聽聽 聽聽聽 聽聽聽 }

聽聽聽 聽聽聽 聽聽聽 }

涓嬮潰鏄痙el杩欎釜post鐨勫垽鏂?

聽聽聽 empty($dopost)? "" : $dopost;

聽聽聽 if($dopost == "save"){

聽聽聽 聽聽聽 //濡傛灉鎵ц鎻掑叆鎿嶄綔

聽聽聽 聽聽聽 $sql = "INSERT INTO `dede_test` (`name`) VALUES ('{$name}')";

聽聽聽 聽聽聽 $dsql->ExecuteNoneQuery($sql);

聽聽聽 聽聽聽 $lastInsertID = $dsql->GetLastID();

聽聽聽 聽聽聽 ShowMsg("鎴愬姛澧炲姞涓€鏉¤褰曞唴瀹癸紒","test.php?id={$lastInsertID}");

聽聽聽 聽聽聽 exit();

聽聽聽 }elseif($dopost == "del"){

聽聽聽 聽聽聽 //濡傛灉dopost涓篸el,鍒欏垹闄ゆ暟鎹? 聽聽聽 聽聽聽 $id = isset($id) && is_numeric($id) ? $id : 0;

聽聽聽 聽聽聽 $sql = "DELETE FROM `dede_test` WHERE (`id`='{$id}')";

聽聽聽 聽聽聽 $dsql->ExecuteNoneQuery($sql);

聽聽聽 聽聽聽 ShowMsg("鎴愬姛鍒犻櫎涓€鏉¤褰曞唴瀹癸紒","test.php");

聽聽聽 聽聽聽 exit();

聽聽聽 }