- بازدید : (1384)
2- استفاده از پردازش های آماده بوسیله افزونه PDO
قبل از هر چیز توضیح مختصری درباره PDO را ارائه می دهم سپس به نحوه ایمن سازی با این متد می پردازیم...
PDO یک افزونه مخصوص کار با بانک های اطلاعاتی در php است که از نسخه 5.1 به php اضافه شده است. از ویژگی این افزونه میتوان به:
1- به صورت شی برنامه نویسی شده است.
2- تقریبا از بسیاری از بانک های اطلاعاتی پشتیبانی می کند.
اشاره نمود...
این افزونه از سه کلاس تشکیل شده که این سه کلاس شامل: 1- کلاس اصلی(PDO) که حاوی توابع اصلی است 2- کلاس PDOStatement برای پردازش های مربوطه 3- کلاس PDOException برای کنترل خطاهای احتمالی.
با این پیش زمینه شروع می کنیم...
این روش یک روشی است که می تواند در بین برنامه نویسان به جای روش های سنتی مورد استفاده قرار گیرد... در این روش برنامه نویس مجبور است تا ابتدا کد SQL را مشخص کند و سپس هر پارامتر را به جتسجو بفرستد. این شیوه کد نویسی به بانک اطلاعاتی اجازه می دهد تا صرف نظر از ورودي کاربر کد و اطلاعات را از یکدیگر تمیز دهد.
جملاتی که از قبل تعریف شده باشند اطمینان لازم را جهت استفاده برنامه نویس دارند تا هکر نتواند دستورات مخرب خود را وارد نماید...
مثال قبل را در نظر بگیرید:
<?php
$q="select * from TABLE where id=".$_GET['id'];
$q1=mysql_query($q);
?>
برای استفاده از این کد در PDO به صورت زیر عمل می کنیم:
$db = new PDO('mysql:dbname=mydatabase;host=localhost', 'db_username', 'db_password');
ابتدا ارتباط خود را با پایگاه داده برقرار می کنیم...
$stmt = $db->prepare("SELECT * FROM TABLE WHERE id=:id");
با استفاده از متغیر stmt$ که یک نمونه از کلاس PDOStatement می باشد در خواست را ارسال نموده ایم. سپس
$stmt->bindParam(':id', $id);
ورودی را مشخص می نماییم.
و در نهایت این در خواست را اجرا می کنیم:
$stmt->execute();
نکته: شما قبل از استفاده از این کلاس باید اطمینان حاصل نمایید که این افزونه را فعال کرده باشید.
برای این موضوع محتویات فایل php.ini را ویرایش نمایید. برای این کار فایل php.ini را باز کرده و به دنبال extension=php_pdo_mysql.dll بگردد و پردازش آن را فعال نمایید به وسیله حذف کاراکتر ";".
اگر شما از پایگاه داده دیگری استفاده می کنید باید افزونه مربوط به این بانک اطلاعات را فعال نمایید...
ادامه دارد...
پس به همین دلیل ازتون ممنون میشیم که سوالات غیرمرتبط با این مطلب را در انجمن های سایت مطرح کنید . در بخش نظرات فقط سوالات مرتبط با مطلب پاسخ داده خواهد شد .