0

我无法获得最新的插入 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(我删除了第一个),我得到这张表:
LAST_INSERT_ID()
0
0
0
0
0

如何获取最新的插入记录 ID?顺便说一句,只有 1 列是AUTO_INCREMENT,即id

4

3 回答 3

3
mysql_insert_id()

这一切

关于 mysql_insert_id 的文档

于 2012-08-13T09:11:28.170 回答
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_* 函数的所有好处,而不会让人头疼和 STD :)

于 2012-08-13T09:11:36.180 回答
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.
于 2012-08-13T09:31:14.930 回答