我有一个ID(auto_inc),名称,...和customer_code字段的客户表。此表还有一个“before”触发器,从另一个表中选择一个客户代码,并在插入此记录之前设置customer_code字段。完美的作品。MySQL的PDO LastInsertID插入后与“之前”触发器返回错误的值
问题是,当我检索lastInsertID()时,它总是返回1!
我正在使用PDO和PHP。
感谢您的帮助!
我有一个ID(auto_inc),名称,...和customer_code字段的客户表。此表还有一个“before”触发器,从另一个表中选择一个客户代码,并在插入此记录之前设置customer_code字段。完美的作品。MySQL的PDO LastInsertID插入后与“之前”触发器返回错误的值
问题是,当我检索lastInsertID()时,它总是返回1!
我正在使用PDO和PHP。
感谢您的帮助!
你使用的是什么版本的MySQL?从5.0.12开始,最后一个插入ID不应该被触发器覆盖。但在该版本之前,触发器可能会更改该值,随后的查询会看到错误的值。
请参阅http://dev.mysql.com/doc/refman/5.0/en/stored-routines-last-insert-id.html
非常感谢!我使用的是旧版本! – 2012-01-07 23:42:36
您的表是否具有自动递增的主键? – zerkms 2012-01-06 23:32:43
是............ – 2012-01-06 23:34:31
如果你删除触发器,那么一切正常吗?! – zerkms 2012-01-06 23:35:06