Merhaba şöyle bir SQL kodum var
INSERT INTO books (title, description) values ('$title', '$description');
INSERT INTO books_authors (bid, aid) values ('LAST_INSERT_ID()', '$author');
verileri insert ettiriyorum anca last insert ıd yi buaraya nasıl alıcam ve 3 lü tablo kullanıcam buraya 1 tablo daha inser ekliycem nasıl yapabilirim?
Sql
7
●288
- 07-11-2019, 00:01:26tam yazıyodum cevabı
teşekkürler yine de @tork;
Çözüm dediğin gibi ;
INSERT INTO books (title, description) values ('$title', '$description');
SET @last_id_in_books = LAST_INSERT_ID();
INSERT INTO books_authors (bid, aid) values (@last_id_in_books, '$author');
INSERT INTO books_types (bid, tid) values (@last_id_in_books, '$type'); - 07-11-2019, 00:34:34
INSERT INTO books (title, description) values ('$title', '$description'); INSERT INTO books_authors (bid, aid) values (LAST_INSERT_ID(), '$author');LAST_INSERT_ID fonksiyonunu tırnak içine almışsın. Bu şekilde sayısal değeri 0 verilir. Bu yüzden tırnakları silmen lazım.
ek olarak aşağıdaki gibi de kullanabilirsin.
INSERT INTO books (title, description) values ('$title', '$description'); INSERT INTO books_authors (bid, aid) values ((SELECT <book_id> FROM books ORDER BY <book_id>DESC LIMIT 1), '$author'); - 07-11-2019, 14:21:25UPDATE içinde mantık aynı. Sadece değer olarak vereceğin yere LAST_INSERTED_ID() veya benim verdiğim SQL kodunu parantez içinde yazmalısın. (UPDATE komutunun nasıl çalıştığını bildiğini kabul ediyorum).emirkrgz adlı üyeden alıntı: mesajı görüntüle
Birde, arka arkaya 2 defa LAST_INSERTED_ID fonksiyonunu insert ile kullanırsan, her seferinde değerler farklı gelir. Aynı tabloya insert edersen, ardışık, farklı tablolara insert edersende o tablodaki son eklenen id değerini alırsın. Eğer her yerde ilk eklenen ID yi kullanmak istiyorsan, @tork söylediği gibi, önce değişkene aktarıp sonra kullanman gerek.
teşekkürler yine de