私は再びここに来て、私は夢中になっています!私はこのストアドプロシージャを持っています:
CREATE DEFINER=`root`@`localhost` PROCEDURE `aggiungi_categoria`(IN `id_categoria_principale` INT, IN `nome_categoria` VARCHAR(150), IN `sigla_categoria` VARCHAR(10), IN `stato_categoria` INT) NOT DETERMINISTIC MODIFIES SQL DATA SQL SECURITY DEFINER
begin
select @rgt := rgt,@lft := lft from categorie where id = id_categoria_principale;
if @rgt - @lft = 1 then
UPDATE categorie SET rgt = rgt + 2 WHERE rgt > @lft;
UPDATE categorie SET lft = lft + 2 WHERE lft > @lft;
insert into categorie (nome,sigla,stato,lft,rgt)
values(nome_categoria,sigla_categoria,stato_categoria,@lft+1,@lft+2);
ELSE
UPDATE categorie SET rgt = rgt + 2 WHERE rgt > @rgt-1;
UPDATE categorie SET lft = lft + 2 WHERE lft > @rgt-1;
insert into categorie (nome,sigla,stato,lft,rgt) values
(nome_categoria,sigla_categoria,stato_categoria,@rgt,@rgt+1);
end if;
end
最後の挿入IDを取得するにはどうすればよいですか??? パラメータを使用せずに、またはテーブルでmax(id)を使用して選択を行うか、「set last_id = last_insert_id()」を使用してすべてを試しましたが、php経由で取得する方法がわかりませんか?
phpmyadminでプロシージャを呼び出すと、次のようなものが得られます
@rgt:=number,@lft:=number2
そしてphpでは明らかに配列で同じ結果が得られます。
私は何を間違っていますか?