校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 網站建設 > 建站知識 > 織夢SQL命令執行器分析

織夢SQL命令執行器分析

POST TIME:2020-04-11 21:45

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


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

  • 400-1100-266
主站蜘蛛池模板: 抚宁县| 龙游县| 安龙县| 且末县| 锡林浩特市| 海安县| 沾益县| 连城县| 普安县| 内丘县| 贺兰县| 离岛区| 恩施市| 临沧市| 大兴区| 太康县| 营口市| 乐业县| 贡山| 马公市| 同德县| 大城县| 巴南区| 辉南县| 夹江县| 大田县| 如皋市| 江孜县| 图们市| 江孜县| 海丰县| 河源市| 凤山市| 安化县| 禄丰县| 铁岭市| 泰安市| 富源县| 永德县| 奉贤区| 榆树市|