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,CONCATphp

如圖sql

 

注意:
上述錯誤只有在打了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 ");
}
}
相關文章
相關標籤/搜索