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

شروع موضوع توسط jazebe ‏28 نوامبر 2005 در انجمن برنامه‌نویسی با PHP

  1. jazebe

    jazebe New Member

    ارسال‌ها:
    23
    تشکر شده:
    0
    امتیاز دستاورد:
    1
    سلام
    آقا فرض کنید من یک اسکریپت دارم که دارای یک حلقه می باشد که بستگی به شرایط این حلقه چنیدن بار اجرا میشه

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

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

    خیلی برام مهمه اگه می دونید کمکم کنید
     
    نوشته شده توسط jazebe در ‏28 نوامبر 2005
  2. I.NoBody

    I.NoBody Active Member

    ارسال‌ها:
    1,157
    تشکر شده:
    365
    امتیاز دستاورد:
    36
    خوب شما مي توني يه متغير رشته اي داشته باشي و هر بار که حلقه اجرا ميشه، query رو به رشته اضافه کني و پس از اتمام کار اون حلقه، اون رشته رو query بگيري.
    به همين راحتي
     
    نوشته شده توسط I.NoBody در ‏28 نوامبر 2005
  3. jazebe

    jazebe New Member

    ارسال‌ها:
    23
    تشکر شده:
    0
    امتیاز دستاورد:
    1
    عزیز من گفتم که حلقه معلوم نیست که چند بار اجرا میشه
    یعنی شما میگی که با هر بار اجرای حلقه من query را داخل یک متغیر بذارم؟

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

    sama_sally Member

    ارسال‌ها:
    226
    تشکر شده:
    2
    امتیاز دستاورد:
    16
    خوب ممکنه دقیقا کجا مشکل ایجاد بشه؟
    توی خط اول حلقه با یه QUERY تست کن ببین مای اس کیو ال مشکلی دره یا نه اگه داشت die کن!
     
    نوشته شده توسط sama_sally در ‏28 نوامبر 2005
  5. jazebe

    jazebe New Member

    ارسال‌ها:
    23
    تشکر شده:
    0
    امتیاز دستاورد:
    1
    دوست عزیز من مشکلم این چیزها نیست
    مشکل من به خاطر سنگینی اسکریپتم هست
    ممکنه در هر بار اجرای اسکریپت حدود 1000 query اجرا بشه که تغییراتی را روی بانک انجام می دند.
    چون اسکریپتم سنگین هست، ممکنه در حین اجرای آن کاربر صفحه رو ببنده یا کلا مشکلی پیش بیاد که اسکریپت کامل انجام نشه.
    با این وضع کلی مشکل پیش میاد. من می خوام یا کل اسکریپت کامل اجرا بشه یا اصلا هیچ تغییری روی بانک انجام نشه
     
    نوشته شده توسط jazebe در ‏28 نوامبر 2005
  6. miladmovie

    miladmovie Active Member

    ارسال‌ها:
    1,075
    تشکر شده:
    88
    امتیاز دستاورد:
    36
    راستش يك روش هست ولي من يادم نيست !
    قبل از اين كه شروع كني به اجرا كردن query ها يك query خاص رو اجرا مي كني و ......
    اين رو گفتم كه مي شه ! ولي بايد متنظر كسي باشي كه بياد بگه ;)
     
    نوشته شده توسط miladmovie در ‏28 نوامبر 2005
  7. jazebe

    jazebe New Member

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

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

    تنها راهش مهندسی معکوسه :))
     
    نوشته شده توسط jazebe در ‏28 نوامبر 2005
  8. I.NoBody

    I.NoBody Active Member

    ارسال‌ها:
    1,157
    تشکر شده:
    365
    امتیاز دستاورد:
    36
    لطفاً کدت رو بذار شايد بهتر بتونيم کمکت کنيم.
     
    نوشته شده توسط I.NoBody در ‏29 نوامبر 2005

به اشتراک بگذارید