PDA

View Full Version : TRANSACTION و گرفتن LAST_INSERT_ID();



babak-maziar
چهارشنبه 27 آبان 1394, 22:14 عصر
سلام دوستان خوبین؟ من php , mysql کار میکنم یه کوئری دارم به این شکل

BEGIN;
INSERT INTO table1 (column1,column2,...) VALUES (value1,value2,...);
INSERT INTO table2 (col1,col2,...) VALUES (LAST_INSERT_ID(),value2,...);
COMMIT;


حالا ایدی رکورد ثبت شده در tabel1 رو میخوام با tabel2 هم کارم راه میفته، اما متاسفانه چون دستور کامیت هست، دیگه lastinsertid نمیتونه اون دستور ایدی رو برام برگردونه، و صفر برمیگردونه. اگر هم به این شکل بنویسم

BEGIN;
INSERT INTO table1 (column1,column2,...) VALUES (value1,value2,...);
INSERT INTO table2 (col1,col2,...) VALUES (LAST_INSERT_ID(),value2,...);
SELECT LAST_INSERT_ID();
COMMIT;


بازهم بعد از فچ کردن هیچ مقداری رو بر نمیگردونه، در واقع NULL هست.
موضوع اینه که یه سری دیتا هست که باید بره توی دوتا جدول که relate هستن وارد بشه، و بعد از اینکه وارد شد، """"""پیش نمایش"""""" بشه یعنی همون موقع کسی که وارد کرده اطلاعات رو، اون رو ببینه و مثلا بتونه چکش کنه یا ویرایش کنه، حالا اطلاعات اینسرت اون دوتا جدول کامیت هست و برای پیش نمایش ما ایدی رو میخوایم تا بتونیم دوباره واکشی کنیم
چند روز سر این علافم دوستان، هرچی PDF بوده خوندم، هرچی مطلب در موردش توی STACKOVERFLLOW بوده خوندم، جواب رو نگرفتم. خواهش میکنم راهنماییم کنید.
این ایدی تلگرام منه اگر لطف کنین اونجا بم بگین که بلافاصله متوجه شم ممنون میشم، @babak_maziar
خیلی عثب افتاده کارام و واقعا خیلی برام حیاطیه، خواهش میکنم راهنماییم کنید