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 ");

时间: 2024-11-15 08:41:32

ECSHOP后台SQL查询提示错误 this sql May contain UPDATE,DELETE,TRUNCATE,ALTER,DROP,FLUSH,INSERT的相关文章

网站后台登录aspcms 提示错误号:-2147467259,错误描述:操作必须使用一个可更新的查询。sql=update AspCms_Content set TimeStatus=0 where TimeStatus=1 and Timeing <= 解决方法。

把data文件夹的权限改下,改成user组可以修改.写入,就好了. 还有一个问题,就是进入后台的时候提示没有访问权限的问题,解决方法看下图

网站后台登录asp 提示错误号:-2147467259

方法/步骤 1 asp 提示错误号:-2147467259 提示:[] 错误号:-2147467259 错误描述:操作必须使用一个可更新的查询. SQL错误 解决方法  把data文件夹的权限改下,改成user组可以修改.写入,就好了. 原文地址:https://www.cnblogs.com/juehai/p/10799980.html

Hibernate 的原生 SQL 查询

Hibernate除了支持HQL查询外,还支持原生SQL查询.         对原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行Session.createSQLQuery()获取这个接口.该接口是Query接口的子接口.         执行SQL查询步骤如下:         1.获取Hibernate Session对象         2.编写SQL语句         3.通过Session的createSQLQuery方法创建查询对象         4.调用SQ

Hibernate SQL查询 addScalar()或addEntity()

Hibernate除了支持HQL查询外,还支持原生SQL查询.          对原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行Session.createSQLQuery()获取这个接口.该接口是Query接口的子接口.          执行SQL查询步骤如下:          1.获取Hibernate Session对象          2.编写SQL语句          3.通过Session的createSQLQuery方法创建查询对象         

SQL查询 thinkphp

http://doc.thinkphp.cn/manual/query.html SQL查询 ThinkPHP内置的ORM和ActiveRecord模式实现了方便的数据存取操作,而且新版增加的连贯操作功能更是让这个数据操作更加清晰,但是ThinkPHP仍然保留了原生的SQL查询和执行操作支持,为了满足复杂查询的需要和一些特殊的数据操作,SQL查询的返回值因为是直接返回的Db类的查询结果,没有做任何的处理.主要包括下面两个方法:1.query方法 query  执行SQL查询操作 用法 query

笔记:Hibernate SQL 查询

Hibernate 支持使用原生的SQL查询,使用原生SQL查询可以利用某些数据库特性,原生SQL查询也支持将SQL语句放在配置文件中配置,从而提高程序的解耦,命名SQL查询还可以用于调用存储过程. SQL查询是通过SQLQuery接口来表示的,SQLQuery接口是Query接口的子接口,完全可以使用Query接口的方法,SQLQuery增加了二个重载方法 addEntity():将查询到的记录与特定的实体关联 addScalar():江查询的记录关联标量值 执行SQL的步骤如下: 获取Hib

在MyEclipse中构建SQL查询语句

在MyEclipse中的Visual SQL查询编辑器可用于轻松创建复杂的SQL语句,同时还无需记住其语法.不仅如此,它还利用易于使用的向导来直观地添加表.创建连接.管理组.表达式以及输出命令等等.在本教程中,您将学习到: 打开Visual SQL查询编辑器 将表添加到查询中并创建连接 构建一个表达式 运行该SQL 持续时间:10分钟 没有MyEclipse?立即下载 1. 打开Visual SQL查询编辑器 这里有几种方法可以用来访问Visual SQL查询编辑器. 1.1 从SQL编辑器中打

SQL查询语句 [2]

一.快捷查询 快捷查询方式是一种多字段查询的简化写法,在多个字段之间用'|'隔开表示OR,用'&'隔开表示 AND. 1.不同字段相同查询条件 在  Home/controller/UserController.class.php   中插入 //使用相同查询条件 $user = M('User'); $map['user|email'] = '蜡笔小新'; //'|'换成'&'变成AND var_dump($user->where($map)->select()); 这时在浏

SQLYog执行SQL脚本提示:错误代码: 1067 - Invalid default value for '数据库表'查询:解决办法

强烈建议:完全卸载当前版本MySQL,重新安装5.6及以上版本 完全卸载方法:https://jingyan.baidu.com/article/3d69c551611290f0ce02d77b.html 卸载完之后记得删除C:\ProgramData下的隐藏文件MySQL 这是我在网上查阅多方资料,尝试无数次,踩了很多坑之后得到的最优解决办法! 至于网上修改sql_mode之类的办法,亲测无效,可能和我代码有关,不做赘述! 出现该错误原因:MySQL版本不同,导致5.6版本之前和之后的语法有很