나는 다시 여기에 있는데, 나는 미쳐 가고있다! 나는이 저장 프로 시저가 : 내가 마지막으로 삽입 된 ID를 얻을 수있는 방법마지막으로 삽입 한 행의 마지막 삽입 ID 가져 오기
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
을 ??? 나는 밖으로 param 또는 테이블 (또는 "last_id last_insert_id()"설정 최대 (ID) 선택을 수행했지만 PHP 통해 얻는 방법을 모르겠다?
내가
@rgt:=number,@lft:=number2
같은 것을 받고 있어요 및 PHP에서 분명 내가 배열에서 같은 결과를 얻을 phpMyAdmin에있는 프로 시저 호출
.무엇이 잘못 되었나요?
PHP에서 mysql_insert_id()가 작동하지 않습니까? (또는 MySQLi를 사용하는 경우'$ mysqli-> insert_id') –
MySQL 데이터베이스입니까? 그렇다면, mysql, mysqli, pdo 등 어떤 확장자를 사용하고 있습니까? –
@MartinMajer 나는 last_id에 select last_insert_id() 나 set last_id = last_insert_id()와 같이 프로 시저가 끝날 때 직접 사용했다. 여기서 last_id는 out 매개 변수이다. –