一)、
首先說一下錯誤現象:
市面上流行的絕大部分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 "); } }