【发布时间】:2013-12-11 18:28:25
【问题描述】:
我又来了,我快疯了! 我有这个存储过程:
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 中我在数组中得到了相同的结果。
我做错了什么?
【问题讨论】:
-
mysql_insert_id()在 PHP 中不起作用? (或$mysqli->insert_id如果你使用 MySQLi) -
是 MySQL 数据库吗?如果是这样,您使用的是什么扩展,即 mysql、mysqli、pdo 等?
-
-
@RossWilson 是的,反正我用的是 mysqli
标签: php mysql sql stored-procedures last-insert-id