MYSQL:SQL查询获取autoincrement字段的值

时间:2009-09-25 15:03:02

标签: php sql mysql

我有一张桌子。主键为id,其自动递增。 现在,当我插入新记录时,我需要获取记录更新的id。 我怎样才能做到这一点?如果我使用查询...

select max(id) from table_name

...执行后我可以获得id。但是,我可以确定它刚刚插入的记录的ID吗?因为很多人会同时使用该应用程序。

我正在使用php和mysql。

ayone可以在php中使用mysql为我提供示例代码片段吗?

7 个答案:

答案 0 :(得分:5)

如果您想了解自动增量列中的最新ID,您只需在插入查询后立即运行mysql_insert_id()函数。

像这样:

//--connection already made to database
//--now run your INSERT query on the table
mysql_query("INSERT INTO table_name (foo_column) VALUES ('everlong')");

//-- right after that previous query, you run this
$newest_id = mysql_insert_id();

现在$newest_id将包含插入的最新行的ID。

答案 1 :(得分:3)

假设您正在使用MySQLi PHP扩展,您想要的命令是mysqli_insert_id

答案 2 :(得分:2)

在SQL中你可以这样做

SELECT LAST_INSERT_ID() 

在php中,您可以拨打mysql_insert_id()

答案 3 :(得分:1)

使用相同的连接,然后运行此查询:

SELECT LAST_INSERT_ID()

您的数据库驱动程序可能具有便利功能。

阅读文档。

答案 4 :(得分:1)

您可以使用它来获取下一个auto_increment值的值(假设您已连接到服务器并选择了db;

$query = "SHOW TABLE STATUS LIKE 'tbl_name'";
$result = mysql_query($query);
$auto_incr_val = mysql_result($result, 0, 'Auto_increment');
echo $auto_incr_val;

这将为您提供auto_increment列中接下来将使用的值。 编辑:对不起..那不是你的问题......

答案 5 :(得分:0)

以下是PHP中的示例:

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
mysql_select_db('mydb');

mysql_query("YOUR QUERY HERE", $link);
$inserted_id = mysql_insert_id($link));

答案 6 :(得分:0)

查询

show create table

包含最后一个字符串中需要的信息