مفهوم savepoint و نحوه ی ایجاد آن

در آموزش های قبلی مفهوم تراکنش (اینجا رو ببینید) و نحوه ی استفاده از تراکنش ها در PHP (اینجا رو ببینید) توضیح دادیم! حالا جا داره به مفهوم savepoint نیز اشاره کنیم! همونطور که از اسمش پیداست savepoint نقاط ذخیره شده ای هستند که در مواقع نیاز میتونیم به این نقاط برگردیم و همه چیز به اون نقطه ریست بشه!

دقت کنید که شما باید savepoint رو درون تراکنش ها استفاده کنید! savepoint نقطه ای از تراکنش رو درون خودش ذخیره میکنه و تا موقعی که تراکنش پایان نیافته است میتونیم به اون نقطه برگردیم تا همه ی اطلاعات و داده ها به حالتی که savepoint داره ریست بشن , نحوه ی استفاده savepoint در mysql رو با یه مثال براتون توضیح میدم , به مثال زیر دقت کنید:

در دستورات بالا من ابتدا یه جدول ساختم بعدش با دستور start transaction تراکنش رو شروع میکنیم! در دستور بعدی یه select اجرا میکنیم تا مقادیر درون جدول t_test رو به ما نشون بده , حالا با دستور savepoint tran2 این حالت از برنامه رو با نام tran2 ذخیره میکنیم! در دستور بعدی یه مقدار به جدول اظافه میکنیم و با select ان را نشان میدهیم! حالا برنامه رو برمیگردونیم به نقطه ی tran2 در این حالت هیچ داده ای درون جدول وجود نداره (اون داده ای که اظافه کردیم وجود نخواهد داشت) حالا محتوای جدول رو نشون میدیم میبینیم , در دستور بعدی برمیگردیم به ابتدای تراکنش(جایی که تراکنش رو با دستور Start transaction شروع کردیم) و در دستور بعدی باز دستور select رو اجرا میکنیم 😀 امیدوارم که این مثال مفهوم Savepoint مشخص کرده باشه! به هر حال اگه متوجه نشدید از بخش نظرات پایین همین پست مطرح کنید تا پاسخ بدم.

حالا چجوری میشه savepoint رو با php استفاده کرد؟ 😐 در اینجا نحوه ی استفاده از Savepoint رو در PDO توضیح میدم. به ادامه ی اموزش دقت کنید.

نحوه ای استفاده از savepoint در PDO : شما برای استفاده از savepoint در PDO باید از متد exec استفاده کنید و دستورات مورد نظر خودتون رو اجرا کنید! به مثال زیر دقت کنید:

در مثال بالا به دیتابیس متصل شدیم و تنظیمات سطح خطای PDO رو روی exception قرار دادیم , در مرحله بعد یک تراکنش رو با دستور beginTransaction شروع کردیم و یک savepoint با نام trans1 ایجاد کردیم و بعدش با دستور rollback به نقطه ای که ذخیره کردیم برگشتیم! این یه مثال سریع و ساده بود تا نحوه ی کار رو متوجه بشید.

دوستانی که سوال یا مشکلی دارند از بخش نظرات بگن تا پاسخ بدم.

 

 

به اشتراک بگذارید:Email this to someoneShare on FacebookTweet about this on TwitterShare on Google+Digg thisShare on LinkedInPin on PinterestShare on StumbleUponFlattr the authorShare on RedditBuffer this pageShare on TumblrPrint this pageShare on YummlyShare on VK
  1. حسین

    سلام اقا مهدی خسته نباشید
    می خواستم بدونم روش دیگری هست که بتونیم بفهمیم فرد از کدام سایت اومده درمورد HTTP_REFERER خوندم اما اون میتونه دستکاری شه ایا روش دیگه ی هم هست

    • سلام، تا جایی که من میدونم شما میتونید فقط از referer استفاده کنید که اونم مرورگر در اخنیار شما میزاره.

می‌خواهید دیدگاهتان را بیان کنید؟