آموزش MySQL > مرجع توابع MySQL > تابع ( ) mysqli_autocommit

تابع ( ) mysqli_autocommit :

تابع ( ) mysqli_autocommit ، وضعیت Auto Commit را در اجرای دستورات یک ارتباط با پایگاه داده ( Connection ) ، روش یا خاموش می کند .
در حالت پیش فرض ، این امکان فعال است .

Auto Commit در دستورات یعنی چه ؟

در ارتباط با پایگاه داده تمام فعاليت‌هاي كاربر در قالب تراكنش‌ها انجام مي شود. در صورتي كه در MySQL پارامتر  autocommit فعال شده باشد، هر دستور SQL يك تراكنش را تشكيل مي‌دهد. به عبارت دیگر ، هر دستور در یک فاز اجرا شده و با پایان یافتن آن دستور فاز آن نیز پایان می یابد .  

مقدار پيش‌فرض autocommit در آغاز يك ارتباط با پايگاه داده  1 است. اگر كاربر متغير autocommit را با دستور SET autocommit=0 غير فعال نمايد, مي‌توان اين طور در نظر گرفت كه كاربر هميشه يك تراكنش فعال (و باز) در اختيار دارد ، كه با رسيدن به جمله COMMIT يا ROLLBACK خاتمه مي‌يابد و تراكنش بعد آغاز مي گردد. هر دو دستور فوق تمام قفل‌هايي كه طي تراكنش مذكور بر روي داده‌هاي مختلف قرار داده‌ شد‌اند را رها مي‌كند. دستور COMMIT تغييرات انجام شده توسط يك تراكنش را دائمي مي‌كند. بالعكس، دستورRollback تمام تغييراتي كه يك تراكنش در طول مدت اجراي خود بوجود آورده است را بر‌مي‌گرداند. اگر در ارتباطي AUTOCOMMIT=1 باشد، كماكان مي‌توان از دستور BEGIN براي آغاز يك تراكنش چند جمله‌اي و دستورCOMMIT يا ROLLBACK براي خاتمه به آن استفاده كند.
شکل کلی استفاده از این تابع به صورت زیر است :

syntax mysqli_autocommit( connection , mode ) ;

syntax توضیح هر یک از موارد
توضیح پارامتر
این پارامتر ارتباط ( connection ) که در Query مورد استفاده قرار گرفته است را تعیین می کند .
استفاده از این پارامتر اجباری است .
connection
این پارامتر تعیین می کند که آیا پارامتر autocommit در Query جاری فعال باشد یا خیر . مقدار پیش فرض آن 1 یا true است .
این پارامتر می تواند مقدار true برای فعال بودن و مقدار false را برای غیر فعال بودن داشته باشد .
استفاده از این پارامتر اختیاری است .
mode

مثال عملی :

مثال : در مثال زیر به صورت عملی استفاده از تابع ( ) mysqli_autocommit را نمایش داده ایم .
در این مثال در نقطه ای از Query مقدار پارامتر autocommit را غیر فعال کرده ایم . بنابراین تراکنش اجرای دستورهای بعدی MySQL تا رسیدن به یک دستور مثل تابع ( ) mysqli_autocommit ، باز بوده و یک بلوک را تشکیل می دهد .

مثال < ? php
   $con=mysqli_connect("localhost","my_user","my_password","my_db");   //    اتصال به پایگاه داده
   if (mysqli_connect_errno($con))   //  صدور پیام خطا در صورت عدم موفقیت در ارتباط
      {
         echo "Failed to connect to MySQL: " . mysqli_connect_error();
      }

   // autocommit غیر فعال کردن پارامتر
   mysqli_autocommit($con,FALSE);

   // وارد نمودن چند مقدار جدید
   mysqli_query($con,"INSERT INTO Persons (FirstName,LastName,Age)
   VALUES ('Peter','Griffin',35)");
   mysqli_query($con,"INSERT INTO Persons (FirstName,LastName,Age)
   VALUES ('Glenn','Quagmire',33)");

   // بستن تراکنش جاری
   mysqli_commit($con);


   mysqli_close($con); // بستن ارتباط با پایگاه داده
? >


راجع این مطلب سوال یا اشکالی دارید ؟! آن را در انجمن سایت مطرح نمایید ...         >>>>>  ورود به انجمن تخصصی


نظر خودتان درباره این صفحه را با ما در میان بگذارید :

آیا مطالب این صفحه برای شما مناسب و مفید بوده است :

نام :               
آدرس Email :  

نظر شما :  

سوال امنیتی : پایتخت ایران ؟