MYSQL: değiştirmemesi alanın değerini almak için SQL sorgusu

7 Cevap php

I have a table. The primary key is id and its auto incremented. Now when I insert a new record, I need to get the id with which the record was updated. How can I do that? If i use the query...

select max(id) from table_name

... Yürüttükten sonra ben id alabilirsiniz. Ama kayıt kendi kimliği sadece takılı olduğunu emin olabilirsiniz? Birçok kişi aynı anda uygulamayı kullanarak olacak çünkü.

Ben php ve mysql kullanıyorum.

Ayone bana mysql ile php bir örnek kod parçacığını provie miyim?

7 Cevap

Eğer MySQLi PHP uzantısı kullanıyorsanız varsayarsak, istediğiniz komutu mysqli_insert_id

SQL bunu yapabilirsiniz

SELECT LAST_INSERT_ID()

Php arayabileceğiniz mysql_insert_id()

Aynı bağlantıyı kullanan sonraki bu sorguyu çalıştırın:

SELECT LAST_INSERT_ID()

Sizin veritabanı sürücüsü bunun için bir kolaylık fonksiyonu olabilir.

Docs okuyun.

Zaten sunucusuna bağlı ve db seçilen verilen sonraki auto_increment değerinin (değerini almak için bu kullanabilirsiniz;

$query = "SHOW TABLE STATUS LIKE 'tbl_name'";
$result = mysql_query($query);
$auto_incr_val = mysql_result($result, 0, 'Auto_increment');
echo $auto_incr_val;

This will give you the value that will be used next in the auto_increment column. EDIT: I'm sorry.. That wasn't your question....

İşte PHP örnek:

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
mysql_select_db('mydb');

mysql_query("YOUR QUERY HERE", $link);
$inserted_id = mysql_insert_id($link));

Sorgu

show create table

son dizesinde gereken bilgiyi içerir