ECSHOP后台SQL查詢提示錯誤 this sql May contain UPDATE,DELETE,TRUNCATE,ALTER,DROP,FLUSH,INSERT


一)、
首先說一下錯誤現象:
市面上流行的絕大部分ECSHOP模板,安裝的時候都需要執行一段或幾段SQL語句來修改數據結構或者初始化一些數據。
大多數ECSHOP管理員為了省事,都會通過 “ECSHOP后台》數據庫管理 》SQL查詢” 來執行這些SQL語句。
這時問題就來了,當你粘貼進SQL語句,點“提交查詢”時,系統就會報出下面的錯誤:
this sql May contain UPDATE,DELETE,TRUNCATE,ALTER,DROP,FLUSH,INSERT,REPLACE,SET,CREATE,CONCAT

如圖

 

注意:
上述錯誤只有在打了ECSHOP2.7.3最新補丁的系統下才會出現,如果您的ECSHOP系統沒有打最新補丁,是不會出現這個錯誤提示。

下面來說一下錯誤原因:

之所以會出現上面的錯誤提示,是因為ECSHOP2.7.3最新補丁文件,對ECSHOP后台的“SQL查詢”功能做了限制,
只允許執行 select 查詢語句,除select之外的其他查詢語句,諸如 alter, update, delete, truncate等之類的SQL語句都是被禁止執行的。



二)、

下面再來說一說解決方法:

打開 admin/sql.php  找到下面這段代碼,刪掉即可

if(!empty($_POST['sql']))
{
preg_match_all("/(SELECT)/i", $_POST['sql'],$matches);
if(isset($matches[1]) && count($matches[1])>1)
{
sys_msg("this sql more than one SELECT ");
}

if(preg_match("/(UPDATE|DELETE|TRUNCATE|ALTER|DROP|FLUSH|INSERT|REPLACE|SET|CREATE|CONCAT)/i", $_POST['sql']))
{
sys_msg("this sql May contain UPDATE,DELETE,TRUNCATE,ALTER,DROP,FLUSH,INSERT,REPLACE,SET,CREATE,CONCAT ");
}
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM