我试图解决这个问题,但我似乎无法弄清楚这个查询是如何返回语法错误的。我对 mySQL 的了解很少,因为我刚刚开始掌握它。
这是我要执行的查询:
function _delete_leaf_node($id){
$query ="";
$query .=" SELECT @myLeft := lft, @myRight := rgt, @myWidth := rgt - lft + 1";
$query .=" FROM pages";
$query .=" WHERE id =".$id.";";
$query .=" DELETE FROM pages WHERE lft BETWEEN @myLeft AND @myRight;";
$query .=" UPDATE pages SET rgt = rgt - @myWidth WHERE rgt > @myRight;";
$query .=" UPDATE pages SET lft = lft - @myWidth WHERE lft > @myRight;";
$this->_custom_query($query);
}
这是我返回的错误:
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“DELETE FROM pages WHERE lft = @myLeft UPDATE pages SET rgt = rgt + 1, lft = lft”附近使用正确的语法
我检查了是否通过了正确的 id。也许变量没有以正确的方式设置?我只是不知道如何检查。
任何帮助将不胜感激。