2010-01-07 1 views
1

Могу ли я получить от PHP значение, подобное новому идентификатору, из строки, которую я только что добавил в базу данных, или я должен сделать SELECT для ее получения?Получите значение столбца (например, id) после того, как mysql INSERT

<?php 

$sql = "INSERT INTO my_table (column_1, column_2) VALUES ('hello', 'ciao')"; 
$res = mysql_query ($sql) or die (mysql_error()); 

$sql = "SELECT column_id FROM my_table WHERE column_1 = 'hello'"; 
$res = mysql_query ($sql) or die (mysql_error()); 

$row = mysql_fetch_assoc ($res); 
$id = $row["column_id"]; 
print "my id is = $id"; 

?> 

ответ

3

Используйте это: http://php.net/manual/en/function.mysql-insert-id.php Выбор может быть опасным, поскольку автоматическое приращение часто означает, что записи не могут быть уникальными и поэтому не могут быть однозначно выбраны без идентификатора.

0

Существует встроенная поддержка для него, mysql_insert_id() или что-то в этом роде.

1

Правильный способ получения идентификатора - через mysql_insert_id(), как указывали другие. Причиной этого является то, что у вас могут быть другие вставки сразу после вашего, и просто запрашивать последние id не гарантируется возврат id, который вы ожидали.

$result = mysql_query("INSERT INTO tableName (col1) VALUES ('foo')"); 

print mysql_insert_id(); 
Смежные вопросы