My SQL tetikleyiciler

4 Cevap php

Hiç veritabanına bir ekleme olduğunu ve nasıl olduğunu yakalamak ne zaman geri bu kaydın kimlik numarası patlar bir mysql tetikleyici kurmak mümkün mü kullanarak php?

4 Cevap

Ben tam Sorunuzu anlamıyorum sürece, bu bir tetikleyici gerekmez - sadece veritabanı sürücüsünün "son eklenen ID" işlevini kullanın.

Burada PHP temel mysql sürücüsünü kullanarak bir örnek.

<?php

$db = mysql_connect( 'localhost', 'user', 'pass' );

$result = mysql_query( "insert into table (col1, col2) values ('foo', 'bar')", $db );

$lastId = mysql_insert_id();

Bu kimliği elde etmek için bir bağlantı güvenli bir yoldur.

Önceki cevapları açıklandığı gibi, kimliğini geri dönmek için bir tetikleyici kullanmak gerekmez ediyorum. [Belgelerinde] açıklandığı gibi mysql_insert_id () komutunu kullanabilirsiniz [1].

Eğer bir tetikleyici yeni uç id kullanmanız gerekiyorsa Ancak, kullanım YENİ [identity_column_name] aşağıdaki gibi.:

CREATE TABLE temp (
    temp_id int auto_increment,
    value varchar(10),
    PRIMARY_KEY(temp_id)
);

CREATE TRIGGER after_insert_temp AFTER INSERT ON temp
FOR EACH ROW 
BEGIN
    DECLARE @identity;
    SET @identity = NEW.temp_id;
    -- do something with @identity
END

Sana ne soruyorsun gerçekten emin değilim. Eğer veritabanına bir satır eklemek ve çok atandı kimliği almak isteyen var mı? Yani bunu yaparsanız

printf ("Son eklenen kayıt kimliği% d \ n var", mysql_insert_id ());

Yapmanız çalıştığınız ne başarmak için bir tetikleyici gerekmez.

Basitçe PHP'nin mysql_insert_id yürütülen son INSERT sorgusu oluşturulan kimliği dönecektir çağırıyor.

Described here: http://us2.php.net/manual/en/function.mysql-insert-id.php