是否可以设置一个 mysql 触发器,当数据库中有插入时,它会触发该记录的 id 号,以及如何使用 php 捕获它?
问问题
513 次
4 回答
3
除非我不完全理解您的问题,否则您不需要为此触发 - 只需使用数据库驱动程序的“最后插入的 ID”功能。
这是一个在 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-12T20:18:15.290 回答
2
如前面的答案所述,您不需要使用触发器来返回身份。您可以使用 [文档][1] 中描述的 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-12T20:32:14.743 回答
1
我不确定你在问什么。您是否想在数据库中插入一行并获取分配给它的 id?如果是这样,请这样做
printf("最后插入的记录有 id %d\n", mysql_insert_id());
于 2009-02-12T20:15:06.873 回答
0
您不需要触发器来完成您正在尝试做的事情。
简单地调用 PHPmysql_insert_id
将返回从最后执行的 INSERT 查询生成的 ID。
此处描述:http: //us2.php.net/manual/en/function.mysql-insert-id.php
于 2009-02-12T20:20:02.773 回答