最初は、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 サーバーのバージョンに対応するマニュアルを確認してください。2 行目のカテゴリ SE' を更新します
VENDORERRORCODE:1064 SQL 状態: 42000