اجرا شدن دستورات با هم

jazebe

New Member
سلام
آقا فرض کنید من یک اسکریپت دارم که دارای یک حلقه می باشد که بستگی به شرایط این حلقه چنیدن بار اجرا میشه

در هر بار اجرای حلقه، توابعی فراخوانی میشند که با دیتابیس کار می کنند و اطلاعاتی را به دیتابیس اضافه کرده و یا در آن تغییراتی به عمل می آورند.

حالا من می خوام یا تمام این کارها روی دیتابیس انجام بشه یا اصلا هیچ کدومش انجام نشه
یعنی اگه وسط پردازش مشکلی پیش بیاد که اسکریپت کامل اجرا نشه، هیچ کدوم از تغییرات داخل دیتابیس ثبت نشه

خیلی برام مهمه اگه می دونید کمکم کنید
 

I.NoBody

Active Member
خوب شما مي توني يه متغير رشته اي داشته باشي و هر بار که حلقه اجرا ميشه، query رو به رشته اضافه کني و پس از اتمام کار اون حلقه، اون رشته رو query بگيري.
به همين راحتي
 

jazebe

New Member
عزیز من گفتم که حلقه معلوم نیست که چند بار اجرا میشه
یعنی شما میگی که با هر بار اجرای حلقه من query را داخل یک متغیر بذارم؟

من گفتم که داخل حلقه چندین تابع نیز فراخوانی میشه که هر کدام اطلاعاتی رو در دیتابیس ثبت می کنند.
این ها رو چی کار کنم؟
 

sama_sally

Member
خوب ممکنه دقیقا کجا مشکل ایجاد بشه؟
توی خط اول حلقه با یه QUERY تست کن ببین مای اس کیو ال مشکلی دره یا نه اگه داشت die کن!
 

jazebe

New Member
دوست عزیز من مشکلم این چیزها نیست
مشکل من به خاطر سنگینی اسکریپتم هست
ممکنه در هر بار اجرای اسکریپت حدود 1000 query اجرا بشه که تغییراتی را روی بانک انجام می دند.
چون اسکریپتم سنگین هست، ممکنه در حین اجرای آن کاربر صفحه رو ببنده یا کلا مشکلی پیش بیاد که اسکریپت کامل انجام نشه.
با این وضع کلی مشکل پیش میاد. من می خوام یا کل اسکریپت کامل اجرا بشه یا اصلا هیچ تغییری روی بانک انجام نشه
 

miladmovie

Active Member
راستش يك روش هست ولي من يادم نيست !
قبل از اين كه شروع كني به اجرا كردن query ها يك query خاص رو اجرا مي كني و ......
اين رو گفتم كه مي شه ! ولي بايد متنظر كسي باشي كه بياد بگه ;)
 

jazebe

New Member
اون رو میدونم
استفاده از تراکنش هست
ولی او دردسر داره
چون اولا اینکه من 1-2 تا query ندارم که بخوام راحت این کار رو انجام بدم. تعداد query ها زیاده و پراکنده

در ضمن در این روش تمام query ها همزمان وارد دیتا بیس میشه که این خودش 2 تا مشکل پیش میاره
یکی اینکه اگه حجم query سنگین باشه وسط کار می مونه و حالا کی می خواد خراب کاری این رو درست کنه؟
دومیش هم اینکه تو اسکریپت من نتایج query مهمه و باید پس از اجرای هر query نتیجش رو بررسی کنم

تنها راهش مهندسی معکوسه :))
 

جدیدترین ارسال ها

بالا