我在mysql中定义了一个存储过程(我们称之为proc_create_node(parent INT))来执行插入操作。
当我从 mysql cli 调用它时,执行以下操作就可以了:
CALL proc_create_node(12);
SELECT LAST_INSERT_ID();
我得到了最后插入的ID:
+------------------+
| LAST_INSERT_ID() |
+------------------+
| 15 |
+------------------+
现在,当我从 php 调用这些行时,或者如果我使用 mysql_insert_id() php 函数,我总是会返回 0。
我错过了什么?我如何获得 php 中最后插入的 id?
你的...皮埃尔
最佳答案
这可能与数据库连接有关 - LAST_INSERT_ID() 函数不是在每个连接的基础上工作吗?
您认为将 SELECT LAST_INSERT_ID() 添加到存储过程中并修改存储过程以返回所述 ID 是个好主意吗?
关于php - 调用存储过程后从 php 访问 LAST_INSERT_ID(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/641893/