我有一个表。主键是id
并自动递增。 现在,当我插入新记录时,我需要获取记录更新的ID。 我该怎么做?如果我使用查询...MYSQL:SQL查询来获取自动增量字段的值
select max(id) from table_name
...执行后我可以得到id。但我能确定它刚插入的记录的ID吗?因为很多人会同时使用该应用程序。
我使用的是php和mysql。
可以ayone provie我在PHP与MySQL示例代码片段?
我有一个表。主键是id
并自动递增。 现在,当我插入新记录时,我需要获取记录更新的ID。 我该怎么做?如果我使用查询...MYSQL:SQL查询来获取自动增量字段的值
select max(id) from table_name
...执行后我可以得到id。但我能确定它刚插入的记录的ID吗?因为很多人会同时使用该应用程序。
我使用的是php和mysql。
可以ayone provie我在PHP与MySQL示例代码片段?
使用相同的连接,运行此查询下一个:
SELECT LAST_INSERT_ID()
你的数据库驱动程序可能有一个方便的功能。
阅读文档。
你是什么意思我使用相同的连接? 你可以给我示例代码在PHP与MySQL – user177785 2009-09-25 15:15:32
相同的连接意味着关闭或开始另一个连接到数据库之前。 – random 2009-09-25 15:38:54
假设你正在使用的MySQLi PHP扩展,你想要的命令是mysqli_insert_id
如果你想要找出自动增量列中的最新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。
这里是例如在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));
,你可以用它来获取下一个AUTO_INCREMENT值(因为你已经连接到服务器和价值选择的数据库;
$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列将被使用的值。 编辑:对不起。这不是你的问题....
Q uery
show create table
包含您在最后一个字符串
看样子你是刚开始使用PHP和MySQL所需的信息。你会发现PHP手册(http://ca2.php.net/manual/en/index.php)非常有用,非常清楚。 MySQL手册(http://dev.mysql.com/doc/)也很广泛。 – dnagirl 2009-09-25 15:20:51