php - 调用存储过程后从 php 访问 LAST_INSERT_ID()

标签 php mysql stored-procedures

我在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/

相关文章:

php - 获取属于多个类别及其子类别的帖子会带来重复记录

php - 如何从MySQL数据库中删除插入的数据

php - "Order by price"在 MySQL 中返回一个奇怪的顺序

mysql - 无法添加外键约束 1215

sql - xp_cmdshell 仅适用于绝对文件路径?

sql-server - 传递表值参数时如何组织或避免临时用户定义表类型

php - 访问私有(private) s3 存储桶文件

mysql - Excel CSV 字符串未完全上传到 Excel

mysql - 在 Webmatrix 上安装 Wordpress 时出现数据库错误

mysql - 从存储过程中创建表时出错