آموزش طراحی وب

مدرسه مجازی ایرانیان

دسته بندی موضوعات
سفارش تبلیغات

stored procedure در MySql چیست؟

stored procedure

سلام خدمت همراهان همیشگی مدرسه مجازی ایرانیان

در این جلسه راجع به Stored Procedure ها صحبت می کنیم و نحوه ی کار با SP هارو توضیح میدیم. همونطور که در جلسات گذشته آموزش دادیم در PDO و  MySqli میتونید از  SP ها استفاده کنید. این عمل باعث میشه امنیت کوئری های شما تامین بشه و از Sql Injection در امان بمونید.

stored procedure و یا sp چیست؟

stored procedure ها رویه هایی هستند که شما میتونید پارامتر ورودی به اونها بدید و کوئری های MySql رو اجرا کنید، نتیجه ی اون میتونه شامل خروجی باشه میتونه هم نباشه و فقط دستوری اجرا بشه . مثلا برای نوشتن دستورات  Select , Update , delete و … میتونید از SP ها استفاده کنید.

زمانی شما خروجی دریافت میکنید که چیزی رو select کرده باشید و زمانی هم که  update , delete , insert انجام میدید فقط یه کوئری رو  Execute و اجرا کردید که در نتیجه مقداری رو به عنوان خروجی به شما برنمیگردونه.

در صورتی که SP هارو همراه با PDO استفاده کنید نتیجه ی بسیار موثری خواهید گرفت. زمانی که Sp یکمرتبه اجرا میشه، در حافظه ذخیره میشه و برای فراخوانی مجدد نیاز به سپری کردن زمان اولیه نیست و سریع کوئری اجرا میشه پس سرعت بالایی در اجرای دستورات خواهید داشت.

در یک SP شما میتونید چندین کوئری رو اجرا کنید و حتی از دستورات If condition و دستورات شرطی هم استفاده کنید. میتونید متغییر تعریف کنید و متغییر رو مقدار دهی کنید و در کوئری ها و دستورات شرطی به کار ببرید . همه ی این مراحل سمت mysql اجرا میشه و سرعت بالایی هم خواهد داشت.

پس تا الان به چند مزیت Stored Procedure اشاره کردیم:

  • امنیت بالا در اجرای کوئری ها
  • سرعت بالا در اجرای کوئری ها
  • اجرای چندین کوئری در یک  SP
  • استفاده از دستورات  IF و  Else در SP
  • استفاده از متغییرها و ذخیره سازی مقادیر در متغییرها

 

نحوه ی نوشتن Stored Procedure در MYSQL :

به عنوان مثال ما میخوایم از جدول کاربرها، کاربری رو انتخاب کنیم که id اون مقدار ۳۰ رو داره. خوب برای نوشتن همچین دستوری باید به کوئری id کاربر رو پاس بدیم و با توجه به id کاربر که یک شناسه ی منحصر به فرد هست ، اطلاعات کاربر مورد نظر که id اون برابر با ۳۰ هست رو بگیریم و نمایش بدیم.

در این حالت id میشه پارامتر ورودی ما و خروجی که به ما برمیگردونه، اطلاعات و فیلدهای مربوط به کاربر شماره ۳۰ هست. پس sp ما به شکل زیر خواهد بود:

برای اینکه کاراکترهای فارسی هم پشتیبانی بشه از SET NAMES UTF8; استفاده کردیم.

خوب حالا برای اجرای این کوئری کافیه اون رو CALL کنیم :

به همین راحتی : )

البته نوشتن کوئری های پیچیده کمی سخت هست، اما کم کم یاد میگیرید پیچیده ترین SP هارو هم بنویسید. در سیاره ی MYSQL بخش وسیعی از SP هارو قرار خواهیم داد.

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

دوستان عزیز مطالبی که در سیاره ی MYSQL منتشر میشه رو در سایت های مختلف کپی نکنید ، لطفا برای انتشار علم بطور صحیح و حمایت از مدرسه مجازی ایرانیان ، اونهارو از طریق مدرسه مجازی ایرانیان در شبکه های اجتماعی به اشتراک بگذارید.

تهیه شده در مدرسه مجازی ایرانیان

<<

>>

اگر این آموزش برای شما مفید بود با دوستان خود به اشتراک بگذارید



سفارش تبلیغات

گردآوری و تالیف : میترا رحیمی

بنیانگذار و نوسنده در مدرسه مجازی ایرانیان و سردبیر ماهنامه طراحی وب همچنین مدرس و مسلط به برنامه نویسی سمت سرور با PHP MVC و برنامه نویسی سمت کلاینت با html 5 , css3 , jquery , مبانی سئو و سیستم مدیریت محتوای وردپرس

خوراک خوشمزه و علمی روزانه
با وارد کردن ایمیلتون در فیلد روبرو آموزش های جذاب و vip دریافت نمایید

آموزش های مرتبط با این مطلب

دیدگاه های مخاطبین

لطفا تنها دیدگاه خود را در رابطه با این مطلب ارسال نمایید، سوالات را از طریق سامانه پرسش و پاسخ مطرح نمایید. سوالات در دیدگاه ها تایید نخواهد شد.

  • alisardaryan

    بسیار ممنون از آموزش خوبتون
    فرق این روش با prepared در جلسات قبل چیه؟ و امنیت کدام یک بیشتر است؟

    • میترا رحیمی

      سلام دوست عزیز
      prepared سمت php نوشته میشه ولی sp رو شما در mysql درج می کنید و در php فقط call میکنید. یعنی کوئری شما تو کدهای php تون نیست دیگه .

وبلاگ مدرسه

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

مدرسین مدرسه

  • حسین همت یار

    حسین همت یار

    مدرس ، طراح رابط کاربری وب و موبایل با 8 سال سابقه ی فعالیت حرفه ای

سوابق کامل

آخرین پرسش و پاسخ ها

آخرین پرسش و پاسخ ها
شما هم سوالی دارید ؟