這是我插入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
當然,我會盡量在下面的答案中加入一些東西,但這需要幾分鐘的時間。順便說一下,這是一篇很棒的文章;我不知道爲什麼現在很難找到。 –