Сначала я думал, что столкнулся с проблемой 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; ОБНОВЛЕНИЕ категории SE' в строке 2
VENDORERRORCODE: 1064 Состояние SQL: 42000