http://dev.mysql.com/tech-resources/articles/hierarchical-data.htmlNested Set problème SQL
LOCK TABLE nested_category WRITE;
SELECT @myLeft := lft FROM nested_category
WHERE name = '2 WAY RADIOS';
UPDATE nested_category SET rgt = rgt + 2 WHERE rgt > @myLeft;
UPDATE nested_category SET lft = lft + 2 WHERE lft > @myLeft;
INSERT INTO nested_category(name, lft, rgt) VALUES('FRS', @myLeft + 1, @myLeft + 2);
UNLOCK TABLES;
J'ai essayé d'exécuter ce code d'exemple dans CodeIgniter via $ this-> db-> query() mais je reçois cette erreur
A Database Error Occurred
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 'LOCK TABLE nested_category WRITE; SELECT @myLeft := lft FROM nested_category WHERE name = '2 WAY RADIOS';' at line 3
LOCK TABLE nested_category WRITE; SELECT @myLeft := lft FROM nested_category WHERE name = '2 WAY RADIOS'; UPDATE nested_category SET rgt = rgt + 2 WHERE rgt > @myLeft; UPDATE nested_category SET lft = lft + 2 WHERE lft > @myLeft; INSERT INTO nested_category(name, lft, rgt) VALUES('FRS', @myLeft + 1, @myLeft + 2); UNLOCK TABLES;
Je suis sûr que le base de données n'est pas le problème puisque j'ai couru ce SQL dans phpmyadmin et cela a fonctionné. Mais quand je cours au code, j'ai une erreur. Cela pourrait-il être un problème de codeigniter? Un problème d'encodage de fichier? La fonction query() prend-elle en charge plusieurs requêtes à la fois? Je suis perplexe.
Je vois que je vais regarder dans cette fonctionnalité de fractionnement de requête si elle existe. En ce qui concerne les transactions, j'utilise MyISAM et je crois que vous devez utiliser InnoDB pour supporter les transactions. – arvinsim