برگزیده های پرشین تولز

بازگرداندن ایدی رکورد ذخیره شده در دیتابیس

peiman

Registered User
تاریخ عضویت
23 فوریه 2003
نوشته‌ها
1,554
لایک‌ها
21
سن
36
سلام
خوبید؟
ببینید با یه دستوری مثل این:
PHP:
INSERT INTO `bil1_login` (`id`, `user`, `pass`, `ip`, `action_date`, `action_time`, `action`) VALUES ('0', 'sd', 'fsd', 'sdfd', 'sdf', 'dsf', 'dsf');
یه رک.رد به دیتا بیس اظافه میکنم
حالا میخوام یه پیغام به کاربر بدم که رک.رد شماره فلان ذخیره شده!!
این شماره فلان رو از کجا بفهمم!!
ممنون
 

Mehdi

مدیر بازنشسته
تاریخ عضویت
1 آگوست 2004
نوشته‌ها
5,602
لایک‌ها
49
محل سکونت
Anywhere
خوب میشه آخرین رکورد دیگه درسته ؟ وقتی دستور اینسرت رو اجرا کردی , پشت سرش یه کویری دیگه اجرا کن اخرین رکورد از ایدی رو بگیر .
 

firebird

Registered User
تاریخ عضویت
2 جولای 2005
نوشته‌ها
1,424
لایک‌ها
10
سن
46
فيلد id كه بايد AUTO INCREMENT باشه و نبايد خودت بهش مقدار بدي. بعد از ارسال INSERT با تابع mysql_insert_id ميتوني مقدار id رو به دست بياري.
 

firebird

Registered User
تاریخ عضویت
2 جولای 2005
نوشته‌ها
1,424
لایک‌ها
10
سن
46
خوب میشه آخرین رکورد دیگه درسته ؟ وقتی دستور اینسرت رو اجرا کردی , پشت سرش یه کویری دیگه اجرا کن اخرین رکورد از ایدی رو بگیر .
ممكنه همون لحظه بين INSERT و SELECT يه INSERT ديگه انجام بشه. گرفتن آخرين ركورد توالي اجرا رو رعايت نمي كنه و برنامه دچار مشكل ميشه.
 

peiman

Registered User
تاریخ عضویت
23 فوریه 2003
نوشته‌ها
1,554
لایک‌ها
21
سن
36
ممكنه همون لحظه بين INSERT و SELECT يه INSERT ديگه انجام بشه. گرفتن آخرين ركورد توالي اجرا رو رعايت نمي كنه و برنامه دچار مشكل ميشه.
آره مشکل منم همینه!!
تعداد زیادی یوزر میتونن insert کنن و ریسکه که دوباره یه کوئری بفرستم
یه نمونه از این تابع میزاری!! من نمیدونم چطور باید ازش استفده کنم!!
 

peiman

Registered User
تاریخ عضویت
23 فوریه 2003
نوشته‌ها
1,554
لایک‌ها
21
سن
36

alireza sh

مدیر بازنشسته
تاریخ عضویت
2 ژانویه 2006
نوشته‌ها
2,775
لایک‌ها
70
سن
40
محل سکونت
نصف جهان
البته در SQL سرور ، چنانچه آی دی به صورت autonumber یا همان increment یا identity باشد ، با @@Identity میتوان آخرین آی دی genereate شده را بدست آورد
 

miladmovie

مدیر بازنشسته
کاربر فعال
تاریخ عضویت
25 دسامبر 2002
نوشته‌ها
1,939
لایک‌ها
3
سن
39
البته در SQL سرور ، چنانچه آی دی به صورت autonumber یا همان increment یا identity باشد ، با @@Identity میتوان آخرین آی دی genereate شده را بدست آورد
mysql_insert_id ما هم همین کار رو می کنه ;)
 

peiman

Registered User
تاریخ عضویت
23 فوریه 2003
نوشته‌ها
1,554
لایک‌ها
21
سن
36
اینجا بخش php ئه!! :D
 

firebird

Registered User
تاریخ عضویت
2 جولای 2005
نوشته‌ها
1,424
لایک‌ها
10
سن
46
البته در SQL سرور ، چنانچه آی دی به صورت autonumber یا همان increment یا identity باشد ، با @@Identity میتوان آخرین آی دی genereate شده را بدست آورد
اتفاقاً‌ mysql هم يه تابع LAST_INSERT_ID داره كه توالي اجرا رو رعايت ميكنه منتهي زياد متداول نيست. DB هم در perl يك متد nextID داره كه بسيار استفاده ازش راحته.
 
بالا