我试图编译几个MySQL语句,并在同一个请求中执行它们,但我一直收到MySQL语法错误:
local.sql = "";
for (local.i in this.hitArray)
{
local.sql &= "UPDATE posts SET viewCount = posts.viewCount + 1 WHERE posts.id = #local.i.postId#;";
}
local.service.setSQL(local.sql);原始SQL转储(local.sql var):
UPDATE posts SET viewCount = posts.viewCount + 1 WHERE posts.id = 95;UPDATE posts SET viewCount = posts.viewCount + 1 WHERE posts.id = 95;UPDATE posts SET viewCount = posts.viewCount + 1 WHERE posts.id = 95;
查询似乎就在第一条语句的末尾阻塞。
发布于 2011-08-09 04:58:14
默认情况下,MySQL会禁用多条语句以防止sql注入。您必须将allowMultiQueries标志添加到连接字符串中才能启用它们。
注意:显然,如果您启用了多个语句,那么所有查询都使用cfqueryparam或addParam是非常重要的,因为您现在面临着sql注入的风险。
https://stackoverflow.com/questions/6988418
复制相似问题