Есть ли способ вернуть идентификатор строки, которая была только что создана в MySQL с помощью PHP? - PullRequest
4 голосов
/ 21 марта 2009

Когда я создаю новую запись в моей базе данных MySQL, я бы хотел, чтобы запрос возвращал идентификатор только что созданной таблицы. Если он не может этого сделать, есть ли другой способ узнать этот идентификатор? Причина, по которой я хочу это сделать, заключается в том, чтобы я мог связать новую строку со строкой, которая ее породила (и нет гарантии, что они будут последовательными)

Ответы [ 6 ]

11 голосов
/ 21 марта 2009

Вы имеете в виду последний идентификатор автоинкремента?

<?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());
?>
6 голосов
/ 21 марта 2009

Вы хотите mysql_insert_id()

2 голосов
/ 21 марта 2009

взгляните на http://us3.php.net/mysql_insert_id

2 голосов
/ 21 марта 2009

Вы имеете в виду идентификатор записи, которую вы только что вставили в таблицу, если так, то вы ищете mysql_insert_id .

1 голос
/ 21 марта 2009

Используйте функцию mysql_insert_id ... http://php.net/mysql_insert_id

Извините, подчеркивания, переводящие 'insert' в курсив ... перейдите по ссылке, и все будет в порядке.

0 голосов
/ 21 марта 2009

У вас есть LAST_INSERT_ID () в My SQL (@@ IDENTITY в ms sql) и mysql_insert_id в php.

Лично я стараюсь избегать автоматических приращений / столбцов идентификаторов и генерировать свои идентификаторы другими способами. Среди других причин, потому что они затрудняют вставку в несколько таблиц.

/ B

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...