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);

MySQL に直接クエリを'SELECT LAST_INSERT_ID() FROM candidates'入力すると、このテーブルにあるのと同じ数のレコードが取得されます。すべての値は 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 に答える