織夢(mèng)SQL命令執(zhí)行器分析,織夢(mèng)技術(shù)
導(dǎo)讀:織夢(mèng)技術(shù)織夢(mèng)技術(shù)織夢(mèng)sql命令執(zhí)行器是一個(gè)對(duì)于學(xué)習(xí)sql語(yǔ)言的朋友來(lái)說(shuō),是一個(gè)非常小巧而實(shí)用的工具,如果精通sql的話,那么,我們直接不用phpadmin或數(shù)據(jù)庫(kù)查看工具,查看dede模板安裝織夢(mèng)后臺(tái)模板。
織夢(mèng)sql命令執(zhí)行器是一個(gè)對(duì)于學(xué)習(xí)sql語(yǔ)言的朋友來(lái)說(shuō),是一個(gè)非常小巧而實(shí)用的工具,如果精通sql的話,那么,我們直接不用phpadmin或數(shù)據(jù)庫(kù)查看工具,查看數(shù)據(jù)庫(kù)表信息了,直接用這個(gè)工具,除了不能刪除數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)表外,其它,所有sql命令都可以在這里實(shí)現(xiàn),也就是我們要看查看表、創(chuàng)建表、修改表、優(yōu)化表、更新表等等操作都可以用這個(gè)命令執(zhí)行器來(lái)實(shí)現(xiàn)。
命令執(zhí)行器位置:織夢(mèng)后臺(tái)——>系統(tǒng)——>SQL命令行工具,如下圖所示。
這個(gè)sql命令執(zhí)行器,實(shí)際上分二個(gè)大功能,一個(gè)是上面的對(duì)系統(tǒng)表進(jìn)行優(yōu)化、修復(fù)和查看表結(jié)構(gòu),實(shí)現(xiàn)對(duì)表的宏觀操作,并沒(méi)有操作表的具體值;下面是查詢(xún)這個(gè)表里面的字段值,就是查詢(xún)表dede58模板里面的具體內(nèi)容,主要通過(guò)sql,當(dāng)然,還可以更新表、修改表等,還可以從更宏觀的角度來(lái)操作表,甚至是操作數(shù)據(jù)庫(kù),例如,創(chuàng)建數(shù)據(jù)庫(kù),創(chuàng)建表等操作。
下面我們主要分析織夢(mèng)的這上面和下面二個(gè)功能的實(shí)現(xiàn)。
實(shí)現(xiàn)原理:無(wú)論我們是用上面的修復(fù)表、優(yōu)化表還是下面的單行或多行查詢(xún)表,它們的原理都是一樣的。例如,當(dāng)我們點(diǎn)擊修復(fù)表時(shí),這時(shí)就會(huì)把修復(fù)命令傳到程序文件sys_sql_query.php(這個(gè)是處理這個(gè)命令執(zhí)行器的程序,對(duì)應(yīng)的模板是sys_sql_query.htm),然后,通過(guò)執(zhí)行sql修復(fù)表語(yǔ)句:REPAIR TABLE `$tablename`(這個(gè)表名是我們?cè)邳c(diǎn)修復(fù)前,選擇中的要修復(fù)的表),進(jìn)行修復(fù)操作,修復(fù)完后,返回成功信息。
這個(gè)修復(fù)功能的實(shí)現(xiàn)跟下面的sql語(yǔ)句的執(zhí)行(例如,查詢(xún)表)原理是完全一樣。舉例:如果我們要查詢(xún)主表中的標(biāo)題,首先,選中執(zhí)行的類(lèi)型,即可單行執(zhí)行還是多行,然后,我們就可以在下面的寫(xiě)入sql語(yǔ)句:select title from dede_archives,當(dāng)我們點(diǎn)擊確定后,通過(guò)表單把這條sql查詢(xún)語(yǔ)句,傳送程序文件sys_sql_query.php里面,然后,程序就會(huì)執(zhí)行這查詢(xún)語(yǔ)句,成功后,返回成功信息。出錯(cuò)時(shí)返回出錯(cuò)信息。其它語(yǔ)句的查詢(xún)也是如此,大同小異。
這些功能的實(shí)現(xiàn),都是通過(guò)把表單提交給程序文件sys_sql_query.php來(lái)實(shí)現(xiàn)dede模板下載的,正常情況下,如果我們提交表單,都是會(huì)轉(zhuǎn)到程序文件sys_sql_query.php這個(gè)路徑(在地址欄,我們會(huì)看到變化)下面,來(lái)顯示結(jié)果,但是在這個(gè)命令執(zhí)行器里面,我們發(fā)現(xiàn),無(wú)論執(zhí)行什么樣的命令,都在“返回信息”這個(gè)區(qū)域顯示,這是這個(gè)教程里面的另一個(gè)技巧。
這個(gè)小小的功能是如何實(shí)現(xiàn)的?我們打開(kāi)模板文件sys_sql_query.htm,我們發(fā)現(xiàn)有二個(gè)表單,為了方便講解,把不必要的表單內(nèi)容刪掉后,如下:
表單一、 <form action="sys_sql_query.php" method="post" name="infoform" target="stafrm">
<input type='hidden' name='dopost' value='viewinfo' />
<td height="200" align="center">返回信息:</td>
<td> <iframe name="stafrm" frameborder="0" id="stafrm" width="100%" height="100%"></iframe></td></tr>
</form>
表單二、<form action="sys_sql_query.php" method="post" name="form1" target="stafrm"></form>
上面的二個(gè)表單,里面都有target="stafrm",第一個(gè)表單里面有一個(gè)框架<iframe name="stafrm" frameborder="0" id="stafrm" width="100%" height="100%"></iframe>,這個(gè)框架就是顯示返回信息用的,我們看這個(gè)框架里面name值是stafrm,正好是表單target="stafrm"的值。
在表單里面target="stafrm" 意思是提交表單給action="sys_sql_query.php"后,顯示的內(nèi)容在哪里,target="stafrm"里面的值stafrm正是框架里面name的值,意思就是sys_sql_query.php處理表單住處后,要在框架這一塊顯示返回的內(nèi)容,這一小技巧應(yīng)用非常廣,例如有時(shí)候,我們看到一個(gè)網(wǎng)站上有一個(gè)功能,例如調(diào)查問(wèn)卷,在線測(cè)試等,當(dāng)點(diǎn)提交的時(shí)候,當(dāng)前的頁(yè)面沒(méi)有動(dòng),結(jié)果,當(dāng)前頁(yè)面顯示出來(lái)的結(jié)果,很多都是用框架實(shí)現(xiàn)的。當(dāng)然,這個(gè)用jquery也能實(shí)現(xiàn)這樣的看上去無(wú)刷新頁(yè)面,就可以看到結(jié)果的效果。
分析命令處理器文件sys_sql_query.php:
打開(kāi)文件sys_sql_query.php,在第二行有這么一句,這是用來(lái)檢測(cè)用戶權(quán)限的CheckP織夢(mèng)模板urview('sys_Data'),以后我們做織夢(mèng)二次開(kāi)發(fā)時(shí),也可以用這個(gè)權(quán)限技巧,來(lái)達(dá)到讓不同的用戶進(jìn)行不同的操作,例如,本例中,如果你是用信息發(fā)布員身份進(jìn)入后臺(tái)的,那么,你就不沒(méi)有這個(gè)權(quán)限進(jìn)行sql操作了。
接下來(lái)的代碼就把“修復(fù)選中表、修復(fù)全部表、優(yōu)化選中表、優(yōu)化全部表和查看表結(jié)構(gòu)”,進(jìn)行分別處理代碼。當(dāng)我們點(diǎn)后面的按扭時(shí),例如點(diǎn)擊“查看表結(jié)構(gòu)”,即模板里面對(duì)應(yīng)代碼:<input type="Submit" name="Submit3"value="查看表結(jié)構(gòu)" onClick="this.form.dopost.value='viewinfo'; " />,這個(gè)按扭代碼里面,通過(guò)js鼠標(biāo)事件onClick,把鍵值對(duì)dopost=viewinfo傳到了,這個(gè)表單action里面的sys_sql_query.php文件,然后,由這個(gè)文件里面的 $dsql->SetQuery("SHOW CREATE TABLE ".$dsql->dbName.".".$tablename)這句,設(shè)置sql代碼,進(jìn)行查詢(xún)。然后,再把結(jié)果返回給模板里面的框架,然后,我們?cè)邳c(diǎn)“查看表結(jié)構(gòu)”后,就在“返回信息”那一塊看到了返回的結(jié)果。
其它四按扭功能都跟這個(gè)完全一樣,唯一不一樣的就是處理的sql語(yǔ)句。關(guān)于sql語(yǔ)句,如果不會(huì)大家可以查詢(xún)一下手冊(cè)。下面的命令執(zhí)行行,跟這個(gè)原里完全一樣,不一樣的是除了sql外,還有提交方式是點(diǎn)下面的“確定”,其實(shí),跟上面五個(gè)按扭一樣,這個(gè)確定也是一個(gè)按扭,只不過(guò)是上面的文字不一樣。相關(guān)dede模板安裝織夢(mèng)后臺(tái)模板。
聲明: 本文由我的SEOUC技術(shù)文章主頁(yè)發(fā)布于:2023-07-20 ,文章織夢(mèng)SQL命令執(zhí)行器分析,織夢(mèng)技術(shù)主要講述命令,執(zhí)行器,織夢(mèng)網(wǎng)站建設(shè)源碼以及服務(wù)器配置搭建相關(guān)技術(shù)文章。轉(zhuǎn)載請(qǐng)保留鏈接: http://www.bifwcx.com/article/web_31499.html
為你推薦與織夢(mèng)SQL命令執(zhí)行器分析,織夢(mèng)技術(shù)相關(guān)的文章
-
DedeCMS站點(diǎn)高級(jí)安全策略(Linux篇),織夢(mèng)教程
(105)人喜歡 2023-07-20 -
織夢(mèng)DEDECMS中讓近三天發(fā)布的文章顯示紅色
(194)人喜歡 2023-07-20 -
dedecms網(wǎng)站搬家需要的備份的文件,dedecms
(51)人喜歡 2023-07-20 -
織夢(mèng)(dedecms)導(dǎo)航條dropdown.js的改進(jìn)(附演示
(98)人喜歡 2023-07-20 -
解決Dedecms生成RSS地圖地址出錯(cuò)全都多了一
(139)人喜歡 2023-07-20 -
dede調(diào)用指定欄目下相關(guān)文章的實(shí)現(xiàn)方法
(123)人喜歡 2023-07-20