返回最后一个插入ID

时间:2012-08-13 09:08:39

标签: php mysql sql last-insert-id

我无法获取最新的插入ID。这是我的PHP代码:

$query='INSERT INTO candidates (company_id, name, surname, address1, address2, city, county, postcode, cv, skills, distance) VALUES (10254, \'name\', \'surname\', \'1st Floor\', \'Street\', \'City\', \'County\', \'postcode\', \'0\', \'#6#,#3#,#2#,#1#,\', 25)';
$sql = mysql_query($query, $jobboard) or die(mysql_error());
$res = mysql_query('SELECT LAST_INSERT_ID() FROM candidates AS ID',$jobboard);

当我将查询'SELECT LAST_INSERT_ID() FROM candidates'直接放在MySQL中作为回报时,我得到的记录与此表中的数量一样多,所有值都为0.例如,我现在有5条记录,id是2,3,4 ,5,6(我删除了第1个),我得到了这个表:
LAST_INSERT_ID()
0
0
0
0
0

如何获取最新的插入记录ID?仅限BTW 1的列为AUTO_INCREMENT,即id

3 个答案:

答案 0 :(得分:3)

mysql_insert_id()

全部

Documentation on mysql_insert_id

答案 1 :(得分:3)

您想使用mysql_insert_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("INSERT INTO mytable (product) values ('kossu')");
printf("Last inserted record has id %d\n", mysql_insert_id());
?>

在这方面,您还希望转向更新,更闪亮,更安全PHP PDO - 旧的折旧mysql_ *函数的所有好处,而不会出现头痛和性病:)

答案 2 :(得分:1)

只需使用mysql_insert_id();,您就可以在数据库中获取激光插入ID。在这种情况下,您可以像这样使用:

$query='INSERT INTO candidates (company_id, name, surname, address1, address2, city, county, postcode, cv, skills, distance) VALUES (10254, \'name\', \'surname\', \'1st Floor\', \'Street\', \'City\', \'County\', \'postcode\', \'0\', \'#6#,#3#,#2#,#1#,\', 25)';
$sql = mysql_query($query, $jobboard) or die(mysql_error());
$last_id=mysql_insert_id();//get last inserted id.