array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'function.mysql-insert-id.php', 1 => 'mysql_insert_id', ), 'up' => array ( 0 => 'ref.mysql.php', 1 => 'MySQL', ), 'prev' => array ( 0 => 'function.mysql-info.php', 1 => 'mysql_info', ), 'next' => array ( 0 => 'function.mysql-list-dbs.php', 1 => 'mysql_list_dbs', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/mysql/functions/mysql-insert-id.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4, PHP 5)
mysql_insert_id — Возвращает идентификатор, сгенерированный при последнем INSERT-запросе
Данный модуль устарел начиная с версии PHP 5.5.0, и удалён в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API. Альтернативы для этой функции:
Возвращает идентификатор, сгенерированный колонкой с AUTO_INCREMENT последним запросом (обычно INSERT).
link_identifier
Соединение MySQL. Если идентификатор соединения не был указан,
будет использовано последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено,
функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров.
Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING
.
Идентификатор, сгенерированный колонкой с AUTO_INCREMENT
последним запросом в случае успешного выполнения, 0
, если
последний запрос не генерирует значение AUTO_INCREMENT value, и
false
, если соединение MySQL не было установлено.
Пример #1 Пример использования mysql_insert_id()
<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Ошибка соединения: ' . mysql_error());
}
mysql_select_db('mydb');
mysql_query("INSERT INTO mytable (product) values ('kossu')");
printf("Идентификатор последней вставленной записи %d\n", mysql_insert_id());
?>
mysql_insert_id() конвертирует возвращаемый функцией
MySQL C API тип значения функции mysql_insert_id()
в
тип long
(называемый int в PHP).
Если ваша колонка AUTO_INCREMENT имеет тип BIGINT (64 бита), то значение,
возвращаемое функцией в результате преобразования может быть
искажено. Используйте вместо данной функции внутреннюю MySQL-функцию
LAST_INSERT_ID() в SQL-запросе. Подробнее о
максимальных значениях целых чисел смотрите в
разделе документации,
посвящённом целым числам.
Замечание:
Так как mysql_insert_id() работает с последним выполненным запросом, вызывайте mysql_insert_id() сразу же после запроса, генерирующего новое значение.
Замечание:
Значение в SQL функции MySQL
LAST_INSERT_ID()
всегда содержит последний сгенерированный ID и не обнуляется между запросами.