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

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

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

POST TIME:2020-04-11 21:45

織夢sql命令執(zhí)行器是一個對于學習sql語言的朋友來說,是一個非常小巧而實用的工具,如果精通sql的話,那么,我們直接不用phpadmin或數(shù)據(jù)庫查看工具,查看數(shù)據(jù)庫表信息了,直接用這個工具,除了不能刪除數(shù)據(jù)庫和數(shù)據(jù)庫表外,其它,所有sql命令都可以在這里實現(xiàn),也就是我們要看查看表、創(chuàng)建表、修改表、優(yōu)化表、更新表等等操作都可以用這個命令執(zhí)行器來實現(xiàn)。
命令執(zhí)行器位置:織夢后臺——>系統(tǒng)——>SQL命令行工具,如下圖所示。
這個sql命令執(zhí)行器,實際上分二個大功能,一個是上面的對系統(tǒng)表進行優(yōu)化、修復和查看表結構,實現(xiàn)對表的宏觀操作,并沒有操作表的具體值;下面是查詢這個表里面的字段值,就是查詢表里面的具體內(nèi)容,主要通過sql,當然,還可以更新表、修改表等,還可以從更宏觀的角度來操作表,甚至是操作數(shù)據(jù)庫,例如,創(chuàng)建數(shù)據(jù)庫,創(chuàng)建表等操作。
下面我們主要分析織夢的這上面和下面二個功能的實現(xiàn)。
實現(xiàn)原理:無論我們是用上面的修復表、優(yōu)化表還是下面的單行或多行查詢表,它們的原理都是一樣的。例如,當我們點擊修復表時,這時就會把修復命令傳到程序文件sys_sql_query.php(這個是處理這個命令執(zhí)行器的程序,對應的模板是sys_sql_query.htm),然后,通過執(zhí)行sql修復表語句:REPAIR TABLE `$tablename`(這個表名是我們在點修復前,選擇中的要修復的表),進行修復操作,修復完后,返回成功信息。
這個修復功能的實現(xiàn)跟下面的sql語句的執(zhí)行(例如,查詢表)原理是完全一樣。舉例:如果我們要查詢主表中的標題,首先,選中執(zhí)行的類型,即可單行執(zhí)行還是多行,然后,我們就可以在下面的寫入sql語句:select title from dede_archives,當我們點擊確定后,通過表單把這條sql查詢語句,傳送程序文件sys_sql_query.php里面,然后,程序就會執(zhí)行這查詢語句,成功后,返回成功信息。出錯時返回出錯信息。其它語句的查詢也是如此,大同小異。
這些功能的實現(xiàn),都是通過把表單提交給程序文件sys_sql_query.php來實現(xiàn)的,正常情況下,如果我們提交表單,都是會轉(zhuǎn)到程序文件sys_sql_query.php這個路徑(在地址欄,我們會看到變化)下面,來顯示結果,但是在這個命令執(zhí)行器里面,我們發(fā)現(xiàn),無論執(zhí)行什么樣的命令,都在“返回信息”這個區(qū)域顯示,這是這個教程里面的另一個技巧。
這個小小的功能是如何實現(xiàn)的?我們打開模板文件sys_sql_query.htm,我們發(fā)現(xiàn)有二個表單,為了方便講解,把不必要的表單內(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>
上面的二個表單,里面都有target="stafrm",第一個表單里面有一個框架<iframe name="stafrm" frameborder="0" id="stafrm" width="100%" height="100%"></iframe>,這個框架就是顯示返回信息用的,我們看這個框架里面name值是stafrm,正好是表單target="stafrm"的值。
在表單里面target="stafrm" 意思是提交表單給action="sys_sql_query.php"后,顯示的內(nèi)容在哪里,target="stafrm"里面的值stafrm正是框架里面name的值,意思就是sys_sql_query.php處理表單住處后,要在框架這一塊顯示返回的內(nèi)容,這一小技巧應用非常廣,例如有時候,我們看到一個網(wǎng)站上有一個功能,例如調(diào)查問卷,在線測試等,當點提交的時候,當前的頁面沒有動,結果,當前頁面顯示出來的結果,很多都是用框架實現(xiàn)的。當然,這個用jquery也能實現(xiàn)這樣的看上去無刷新頁面,就可以看到結果的效果。
分析命令處理器文件sys_sql_query.php:
打開文件sys_sql_query.php,在第二行有這么一句,這是用來檢測用戶權限的CheckPurview('sys_Data'),以后我們做織夢二次開發(fā)時,也可以用這個權限技巧,來達到讓不同的用戶進行不同的操作,例如,本例中,如果你是用信息發(fā)布員身份進入后臺的,那么,你就不沒有這個權限進行sql操作了。
接下來的代碼就把“修復選中表、修復全部表、優(yōu)化選中表、優(yōu)化全部表和查看表結構”,進行分別處理代碼。當我們點后面的按扭時,例如點擊“查看表結構”,即模板里面對應代碼:<input type="Submit" name="Submit3"value="查看表結構" onClick="this.form.dopost.value='viewinfo'; " />,這個按扭代碼里面,通過js鼠標事件onClick,把鍵值對dopost=viewinfo傳到了,這個表單action里面的sys_sql_query.php文件,然后,由這個文件里面的 $dsql->SetQuery("SHOW CREATE TABLE ".$dsql->dbName.".".$tablename)這句,設置sql代碼,進行查詢。然后,再把結果返回給模板里面的框架,然后,我們在點“查看表結構”后,就在“返回信息”那一塊看到了返回的結果。
其它四按扭功能都跟這個完全一樣,唯一不一樣的就是處理的sql語句。關于sql語句,如果不會大家可以查詢一下手冊。下面的命令執(zhí)行行,跟這個原里完全一樣,不一樣的是除了sql外,還有提交方式是點下面的“確定”,其實,跟上面五個按扭一樣,這個確定也是一個按扭,只不過是上面的文字不一樣。


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

  • 400-1100-266
主站蜘蛛池模板: 临潭县| 乐平市| 涞源县| 宿迁市| 梨树县| 黄骅市| 门头沟区| 翁源县| 郎溪县| 亳州市| 阳曲县| 乐清市| 临泽县| 衡阳县| 六安市| 安岳县| 夏河县| 紫阳县| 乌拉特后旗| 九龙县| 眉山市| 阳城县| 望谟县| 那坡县| 金华市| 西昌市| 新绛县| 平舆县| 潜江市| 潮安县| 崇仁县| 内江市| 吉水县| 舒兰市| 馆陶县| 涞源县| 确山县| 甘孜| 望江县| 五寨县| 万源市|