我有一张表,主键是id
并且是自动递增的。现在当我插入新记录时,我需要获取更新记录所用的id。我该怎么做?如果我使用以下查询语句...
select max(id) from table_name
执行后,我可以获得id。但是我能确定它是刚刚插入的记录的id吗?因为许多人将同时使用该应用程序。
我正在使用php和mysql。
有人能为我提供一个带有mysql的php示例代码片段吗?
我有一张表,主键是id
并且是自动递增的。现在当我插入新记录时,我需要获取更新记录所用的id。我该怎么做?如果我使用以下查询语句...
select max(id) from table_name
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。
使用相同的连接,接下来运行此查询:
SELECT LAST_INSERT_ID()
你的数据库驱动程序可能有一个方便的函数来处理这个问题。
阅读文档。
如果您已经连接到服务器并选择了数据库,可以使用此功能来获取下一个自动增量值的值;
$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列中下一个使用的值。 编辑:对不起...那不是你的问题...
这是 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));
查询
show create table
包含你在最后一个字符串中所需的信息