婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 網(wǎng)站建設(shè) > 建站知識(shí) > 織夢(mèng)SQL命令執(zhí)行器分析

織夢(mèng)SQL命令執(zhí)行器分析

POST TIME:2020-04-11 21:45

織夢(mèng)sql命令執(zhí)行器是一個(gè)對(duì)于學(xué)習(xí)sql語言的朋友來說,是一個(gè)非常小巧而實(shí)用的工具,如果精通sql的話,那么,我們直接不用phpadmin或數(shù)據(jù)庫查看工具,查看數(shù)據(jù)庫表信息了,直接用這個(gè)工具,除了不能刪除數(shù)據(jù)庫和數(shù)據(jù)庫表外,其它,所有sql命令都可以在這里實(shí)現(xiàn),也就是我們要看查看表、創(chuàng)建表、修改表、優(yōu)化表、更新表等等操作都可以用這個(gè)命令執(zhí)行器來實(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ì)表的宏觀操作,并沒有操作表的具體值;下面是查詢這個(gè)表里面的字段值,就是查詢表里面的具體內(nèi)容,主要通過sql,當(dāng)然,還可以更新表、修改表等,還可以從更宏觀的角度來操作表,甚至是操作數(shù)據(jù)庫,例如,創(chuàng)建數(shù)據(jù)庫,創(chuàng)建表等操作。
下面我們主要分析織夢(mèng)的這上面和下面二個(gè)功能的實(shí)現(xiàn)。
實(shí)現(xiàn)原理:無論我們是用上面的修復(fù)表、優(yōu)化表還是下面的單行或多行查詢表,它們的原理都是一樣的。例如,當(dāng)我們點(diǎn)擊修復(fù)表時(shí),這時(shí)就會(huì)把修復(fù)命令傳到程序文件sys_sql_query.php(這個(gè)是處理這個(gè)命令執(zhí)行器的程序,對(duì)應(yīng)的模板是sys_sql_query.htm),然后,通過執(zhí)行sql修復(fù)表語句:REPAIR TABLE `$tablename`(這個(gè)表名是我們?cè)邳c(diǎn)修復(fù)前,選擇中的要修復(fù)的表),進(jìn)行修復(fù)操作,修復(fù)完后,返回成功信息。
這個(gè)修復(fù)功能的實(shí)現(xiàn)跟下面的sql語句的執(zhí)行(例如,查詢表)原理是完全一樣。舉例:如果我們要查詢主表中的標(biāo)題,首先,選中執(zhí)行的類型,即可單行執(zhí)行還是多行,然后,我們就可以在下面的寫入sql語句:select title from dede_archives,當(dāng)我們點(diǎn)擊確定后,通過表單把這條sql查詢語句,傳送程序文件sys_sql_query.php里面,然后,程序就會(huì)執(zhí)行這查詢語句,成功后,返回成功信息。出錯(cuò)時(shí)返回出錯(cuò)信息。其它語句的查詢也是如此,大同小異。
這些功能的實(shí)現(xiàn),都是通過把表單提交給程序文件sys_sql_query.php來實(shí)現(xiàn)的,正常情況下,如果我們提交表單,都是會(huì)轉(zhuǎn)到程序文件sys_sql_query.php這個(gè)路徑(在地址欄,我們會(huì)看到變化)下面,來顯示結(jié)果,但是在這個(gè)命令執(zhí)行器里面,我們發(fā)現(xiàn),無論執(zhí)行什么樣的命令,都在“返回信息”這個(gè)區(qū)域顯示,這是這個(gè)教程里面的另一個(gè)技巧。
這個(gè)小小的功能是如何實(shí)現(xiàn)的?我們打開模板文件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)查問卷,在線測(cè)試等,當(dāng)點(diǎn)提交的時(shí)候,當(dāng)前的頁面沒有動(dòng),結(jié)果,當(dāng)前頁面顯示出來的結(jié)果,很多都是用框架實(shí)現(xiàn)的。當(dāng)然,這個(gè)用jquery也能實(shí)現(xiàn)這樣的看上去無刷新頁面,就可以看到結(jié)果的效果。
分析命令處理器文件sys_sql_query.php:
打開文件sys_sql_query.php,在第二行有這么一句,這是用來檢測(cè)用戶權(quán)限的CheckPurview('sys_Data'),以后我們做織夢(mèng)二次開發(fā)時(shí),也可以用這個(gè)權(quán)限技巧,來達(dá)到讓不同的用戶進(jìn)行不同的操作,例如,本例中,如果你是用信息發(fā)布員身份進(jìn)入后臺(tái)的,那么,你就不沒有這個(gè)權(quán)限進(jìn)行sql操作了。
接下來的代碼就把“修復(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è)按扭代碼里面,通過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)行查詢。然后,再把結(jié)果返回給模板里面的框架,然后,我們?cè)邳c(diǎn)“查看表結(jié)構(gòu)”后,就在“返回信息”那一塊看到了返回的結(jié)果。
其它四按扭功能都跟這個(gè)完全一樣,唯一不一樣的就是處理的sql語句。關(guān)于sql語句,如果不會(huì)大家可以查詢一下手冊(cè)。下面的命令執(zhí)行行,跟這個(gè)原里完全一樣,不一樣的是除了sql外,還有提交方式是點(diǎn)下面的“確定”,其實(shí),跟上面五個(gè)按扭一樣,這個(gè)確定也是一個(gè)按扭,只不過是上面的文字不一樣。


收縮
  • 微信客服
  • 微信二維碼
  • 電話咨詢

  • 400-1100-266
主站蜘蛛池模板: 金寨县| 廊坊市| 宝应县| 永年县| 全椒县| 龙岩市| 和政县| 紫阳县| 定南县| 全椒县| 湟中县| 玉树县| 宁海县| 石首市| 武邑县| 桐柏县| 西平县| 怀宁县| 凤凰县| 尤溪县| 玉山县| 阳谷县| 白玉县| 福安市| 房产| 舒城县| 苗栗市| 开江县| 尼玛县| 贵德县| 四子王旗| 龙门县| 大理市| 洛宁县| 新田县| 宜宾县| 潮州市| 永康市| 松桃| 河津市| 新龙县|