有没有可能设置一个mysql触发器,当数据库中有插入的时候,它就会返回该记录的id号,我该如何使用php来捕获它呢?
发布于 2009-02-12 20:18:15
除非我没有完全理解您的问题,否则您不需要触发器-只需使用数据库驱动程序的"last inserted“功能即可。
下面是一个在PHP中使用基本mysql驱动程序的示例。
<?php
$db = mysql_connect( 'localhost', 'user', 'pass' );
$result = mysql_query( "insert into table (col1, col2) values ('foo', 'bar')", $db );
$lastId = mysql_insert_id();这是一种连接安全的获取ID的方法。
发布于 2009-02-12 20:32:15
正如在前面的答案中所解释的,您不需要使用触发器来返回标识。您可以按照文档中的说明使用mysql_insert_id()命令。
但是,如果您需要在触发器中使用新的插入id,请使用NEW.identity_column_name,如下所示:
CREATE TABLE temp (
temp_id int auto_increment,
value varchar(10),
PRIMARY_KEY(temp_id)
);
CREATE TRIGGER after_insert_temp AFTER INSERT ON temp
FOR EACH ROW
BEGIN
DECLARE @identity;
SET @identity = NEW.temp_id;
-- do something with @identity
END发布于 2009-02-12 20:15:07
我不太清楚你在问什么。您是否希望在数据库中插入一行并获取分配给它的id?如果是这样,请执行以下操作
printf(“最后插入的记录id为%d\n",mysql_insert_id());
https://stackoverflow.com/questions/543000
复制相似问题