روش کار Prepared Statements


 اگر قصد دارید 3 رکورد را همزمان درج و ارسال نمایید می توانید از Prepared Statements استفاده نمایید.

Prepared Statements ویژگی ای است که برای اجرای جمله های مشابه SQL بطور مکرر با راندمان بالا استفاده می شود.

Prepared statements در برابر تزریق sql injection بسیار مفید است.

معرفی دستورات آماده (Prepared statements) و پارامترهای متصل (Bound Parameters) :

یک دستور آماده SQL یا Prepared statement قابلیتی است که به وسیله آن می توان یک دستور یکسان SQL یا دستوری مشابه آن را به صورت مکرر و با تاثیرگذاری بالا اجرا کرد.
دستورات آماده Prepared statement SQL به صورت کلی با روش زیر عمل می کنند :
1- آماده سازی اولیه (Prapare) دستور : یک الگو برای دستور SQL مورد نظر ایجاد شده و به پایگاه داده ارسال می شود. مقادیر مشخصی به صورت تعیین نشده در دستور باقی می مانند که به آن ها پارامتر گفته و با نماد ؟ در کد SQL جایگزین می شوند. برای مثال، الگویی همانند کد زیر برای یک دستور درج اطلاعات ایجاد می شود :

2- پایگاه داده الگوی دستوری SQL را خوانده و اجرا می کند. همچنین با استفاده از قابلیت بهینه سازی query یا query optimization سریع ترین راه را برای اجرای آن مشخص می کند. در انتها نتایج حاصل از query را بدون اجرای نهایی در حافظه نگهداری می کند.

3- مرحله سوم اجرا (Excute) : در مرحله آخر، برنامه مقادیر (values) را به پارامترها ارسال کرده و پایگاه داده دستور SQL را به صورت کامل اجرا می کند. برنامه می تواند یک دستور واحد SQL را با مقادیر مختلف، هر چند بار که نیاز داشته باشد اجرا کرده و خروجی های مختلف تولید کند.

مزایای Prepared Statements

حال به مزایای Prepared Statements می رسیم. 3 مزیت را با هم بررسی می کنیم.

Prepared Statements ، زمان تجزیه و تحلیل را کاهش می دهد زیرا تهیه پرس و جو فقط یک بار انجام می شود (اگرچه این بیانیه چندین بار اجرا شده است).

پارامترهای محدود ، پهنای باند را به حداقل می رساند زیرا باید هر بار فقط پارامترها را بفرستید ، و نه کل پرس و جو

همچنین در برابر تزریق SQL بسیار مفید هستند و امنیت بالاتری دارد ، زیرا مقادیر پارامتر ، که بعدا با استفاده از یک پروتکل متفاوت منتقل می شوند ، نیازی به درستی ندارند.

وارد کردن همزمان چند رکورد در php

برای وارد کردن همزمان چند رکورد در php (درج همزمان چند رکورد) می توانید از prepare استفاده کنید.

در مثال زیر درج چند رکورد بصورت همزمان با روش pdo را مشاهده می کنید.

نام دیتابیس testphp1 و نام جدول topsite98 و دارای 3 فیلد id,fname , numbمی باشد که id چون خودکار وارد می شود نیاز به درج ندارد.

از try catch برای خطایابی در php استفاده می شود.

در صورت درج رکورد پیغام New records created successfully نمایش داده می شود.

مثال

 

بدون دیدگاه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *