我有一张桌子。主键为id
,其自动递增。
现在,当我插入新记录时,我需要获取记录更新的id。
我怎样才能做到这一点?如果我使用查询...
select max(id) from table_name
...执行后我可以获得id。但是,我可以确定它刚刚插入的记录的ID吗?因为很多人会同时使用该应用程序。
我正在使用php和mysql。
ayone可以在php中使用mysql为我提供示例代码片段吗?
答案 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)
答案 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
包含最后一个字符串中需要的信息