这是我插入SQL语句:笨插入语法错误
$sql = "
LOCK TABLE notre_offre WRITE;
SELECT
@myRight := rgt FROM notre_offre
WHERE id = " . $this->input->post('category') . ";
UPDATE notre_offre SET rgt = rgt + 2 WHERE rgt > @myRight;
UPDATE notre_offre SET lft = lft + 2 WHERE lft > @myRight;
INSERT INTO notre_offre(id, naziv, lft, rgt) VALUES(null, '" . $this->input->post('title') . "', @myRight + 1, @myRight + 2);
UNLOCK TABLES;
";
$query = $this->db->query($sql);
但我有语法错误:
"Error Number: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT @myRight := rgt FROM notre_offre WHERE id = 2; UPD' at line 3
这里有什么问题吗?这从phpmyadmin和cmd完美工作。 “
随着Wolfgang的评论下面,我会补充说,看起来你想做什么,你真的需要将它做成一个存储过程,否则获取第一个查询的结果并将其用于构建后面的查询。另外,我认为你需要把它放在一个事务中,而不是使用手动表锁定。 –
我知道这是不赞成的,但我从这个http://web.archive.org/web/20051023020223/http://dev.mysql.com/tech-resources/articles/hierarchical-data.html可以学习给我举例这个存储过程,或者可以给我一些链接,我可以了解更多关于它? – Bumblebee989
当然,我会尽量在下面的答案中加入一些东西,但这需要几分钟的时间。顺便说一下,这是一篇很棒的文章;我不知道为什么现在很难找到。 –