起初我以为我遇到了 cfqueryparam 和 mysql 的问题。但是,当我用静态值替换它们时,我得到了同样的错误。这让我很难过,我猜我已经习惯了 Microsoft SQL Server。任何帮助将不胜感激。
这是查询,这在 mySql 查询浏览器中完美运行,但在 cfquery 中运行时失败:
LOCK TABLE categories WRITE;
SELECT @myRight := rgt FROM categories WHERE catid = <cfqueryparam cfsqltype="cf_sql_integer" value="#parentCategoryId#">;
UPDATE categories SET rgt = rgt + 2 WHERE rgt > @myRight;
UPDATE categories SET lft = lft + 2 WHERE lft > @myRight;
INSERT INTO categories(categoryName, lft, rgt) VALUES(<cfqueryparam cfsqltype="cf_sql_varchar" value="#newCatName#">, @myRight, @myRight + 2);
UNLOCK TABLES;
我收到以下错误:
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在 'SELECT @myRight := rgt FROM categories WHERE catid = 5; 附近使用正确的语法 在第 2 行更新类别 SE'
供应商错误代码:1064 SQL 状态:42000