نمایش نتایج: از شماره 1 تا 8 , از مجموع 8

موضوع: هشدار جدی در مورد توابع دیتابیس php و اموزش PDO

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #3
    عضو انجمن
    تاریخ عضویت
    Jul 2012
    نوشته ها
    243
    تشکر تشکر کرده 
    88
    تشکر تشکر شده 
    478
    تشکر شده در
    173 پست

    پیش فرض پاسخ : هشدار جدی در مورد توابع دیتابیس php و اموزش PDO

    تنظیمات خصوصیات دیتابیس

    با استفاده از متد setAttribute میتوانید خصوصیات مورد نظر خود را تنظیم کنید،

    این که روش خوبی هست که قبل از کار با دیتابیس خصوصیات رو تنظیم کنید

    بعضی از این خصوصیات در لینک PHP: PDO::setAttribute - Manual قابل مشاهده هست


    در اینجا به چند خصوصیت مهم می پردازم


    PDO::ATTR_ERRMODE

    با این خصوصیت تعیین میکنید در هنگام مواجه با ارور در اجرای دستورات ، PDO چگونه برخورد کند

    مقادیر این خصوصیت

    PDO::ERRMODE_SILENT ( پیش فرض )

    با این مقدار تنها اررور در متغیر pdo ذخیره میشود و هیچ عمل دیگری صورت نمیگیرد ( نحوه کار با اررور ذخیره شده رو در اینده توضیح خواهم داد)


    PDO::ERRMODE_WARNING

    با این مقدار pdo یک هشدار ایجاد میکند که بر حسب کانفیگ شما ، به کاربر نمایش داده میشود یا در فایل ذخیره میشود یا اصلا ذخیره نمیشود.


    PDO::ERRMODE_EXCEPTION (پیشنهاد بنده )

    با استفاده از این مقدار در صورت برخورد با اررور throw رخ میدهد

    دقت کنید برای استفاده از این خصوصیت باید از try catch استفاده کنید



    یک مثال برای ست کردن و
    PDO::ERRMODE_EXCEPTION
    کد PHP:
    try {
      
    $db = new PDO("mysql:host=$host;dbname=$dbname"$user$pass); //اتصال
      
    $db->setAttributePDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION ); //ست کردن نحوه نمایش ارور
      
      
    $db->prepare('DELECT test FROM db'); // یک دستور که باعث ایجاد خطا میشود
    }
    catch(
    PDOException $e) {
        echo 
    "یک خطا رخ داده است : ".$e->getMessage()ک


    PDO::ATTR_DEFAULT_FETCH_MODE

    با استفاده از این خصوصیت نحوه fetch (خروجی یک ردیف ) را معین میکنید

    مقدایر به صورت زیر است

    PDO::FETCH_ASSOC

    خروجی یک ارایه با اندیس های نام فیلد ها می باشد ( اگر دارای فیلد name باشد مقدار به صورت ['name'] قابل دسترسی هست )

    PDO::FETCH_BOUND

    یک نوع خاصی از خروجی هست که نیازمند درس های اینده هست، و تا اون موقع بدون توضیح رها میشود

    PDO::FETCH_CLASSیک نوع خاصی از خروجی هست که نیازمند درس های اینده هست، و تا اون موقع بدون توضیح رها میشود

    PDO::FETCH_NUM

    خروجی یک ارایه با اندیس های شماره می باشد ( اگر اولین فیلد name باشد مقدار به صورت [0] قابل دسترسی هست )

    PDO::FETCH_BOTH (پیشفرض)

    تلفیقی از FETCH_ASSOC و FETCH_NUM

    PDO::FETCH_OBJ (پیشنهاد بنده)

    خروجی به صورت شی خواهد بود ( اگر در خروجی فیلد name باشد و متغیر $row باشد، مقدار فیلد با $row->name قابل دسترس خواهد بود )

    PDO::ATTR_EMULATE_PREPARES

    در مورد این در آینده صحبت میکتیم، با این وجود فعلا این مقدار را false قرار بدید(مهم)

    نمونه کد برای تغییر خصوصیات

    کد PHP:
    $db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODEPDO::FETCH_BOTH);
    $db->setAttribute(PDO::ATTR_EMULATE_PREPARESfalse); 

  2. تعداد تشکر ها از cooper47 به دلیل پست مفید


اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. مدیریت محتوای پردیس در نمایشگاه رسانه های دیجیتال 93
    توسط bazar30t در انجمن اسکریپت های دیگر
    پاسخ ها: 1
    آخرين نوشته: September 4th, 2014, 11:53
  2. پاسخ ها: 8
    آخرين نوشته: December 27th, 2012, 13:10
  3. پاسخ ها: 0
    آخرين نوشته: February 19th, 2012, 23:07
  4. چند روز پیش دیتابیس دایرکت ادمین هک شده ( همه توجه کنند)
    توسط kaywon در انجمن دايرکت ادمين DirectAdmin
    پاسخ ها: 5
    آخرين نوشته: June 14th, 2011, 10:45
  5. مدیریت محتواهای بدون دیتابیس flat-CMS
    توسط khudeman در انجمن دیگر سیستم ها
    پاسخ ها: 9
    آخرين نوشته: June 8th, 2010, 19:36

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •