در این پست دو مبحث دریافت اطلاعات در PDO و همچنین آموزش امنیت بیشتر با قابلیت prepared در PDO آشنا خواهید شد پس با ما همراه باشید.
آموزش گرفتن اطلاعات یک جدول و نمایش آن با PDO
خوب برای گرفتن اطلاعات از یک جدول همیشه از دستور Select استفاده میکنیم حالا این دستور میتونه به وسیله PDo و یا Mysqli انجام بشه. در این جلسه این کار رو با PDO انجام میدیم.
یادآوری :
PDO از سه کلاس تشکیل شده است:
- کلاس اصلی به نام PDO که حاوی توابع اصلی مثل اجرای کوئری و اتصال و غیره هست.
- کلاس با نام PDOStatement حاوی توابع برای پردازش و بهره گیری ازکوئری های اجرا شده هست.
- کلاس PDOException برای بدست گیری خطاهای رخ داده در اجرای کوئری ها و دیتابیس.
خوب جدولی که ایجاد کردیم به شکل زیر هست، همونطور که میبینید فیلدهای username , password , fullname , email , dateregister داره، که ما میخوایم مقدار فیلدهای fullname و email رو بگیریم و نمایش بدیم.
ابتدا اطلاعات دیتابیس رو وارد میکنیم و با کلاس PDO به دیتابیس متصل میشیم:
<?php $host = "localhost"; $dbname = "iranweblearn"; $username = "iwl"; $password = "123456"; $conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password); ?>
$sql = 'SELECT fullname, email FROM users ORDER BY id'; $q = $conn->query($sql);
کوئری مورد نظرمون رو داخل متغییر $sql تعریف کردیم و اون متغییر رو به متد query پاس دادیم. متد query یک شیء PDOStatement و یا یک Object PDOStatement برمیگردونه.
حالا از برای مد fetch دستور PDO::FETCH_ASSOC رو ست می کنیم. با استفاده از این مد شما میتونید نتیجه ی کوئری بالارو دریافت کنید و نمایش بدید.
$q->setFetchMode(PDO::FETCH_ASSOC);
PDO::FETCH_ASSOC متد fetch() رو میسازه و نتایج کوئری رو برمیگردونه ، کوئری رو هم با متغییر $q مشخص کردیم.
خوب حالا وقتش رسیده نتایج رو چاپ کنیم تا کاربر ببینه، چون ممکنه جدول ما چندین رکورد داشته باشه پس نمیتونیم با یه دستور echo اون هارو چاپ کنیم، باید یه حلقه ایجاد کنیم و بگیم در هر بار گردش در حلقه یه رکورد رو چاپ کنه، برای اینکار از حلقه ی while استفاده میکنیم، این حلقه به تعداد رکوردهای جدول گردش ایجاد میکنه:
<?php while ($r = $q->fetch()): echo ($r['fullname']); echo ($r['email']); endwhile; ?>
خوب حالا برای اینکه مدیریت خطا هم داشته باشیم از کلاس PDOException استفاده میکنیم و دستورات بالارو به شکل زیر مینویسیم:
<?php $host = "localhost"; $dbname = "iranweblearn"; $username = "iwl"; $password = "123456"; try { $conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password); $sql = 'SELECT fullname, email FROM users ORDER BY id'; $q = $conn->query($sql); $q->setFetchMode(PDO::FETCH_ASSOC); } catch (PDOException $pe) { die("Could not connect to the database $dbname :" . $pe->getMessage()); } ?>
در این کد گفتیم با try سعی کن به دیتابیس وصل بشی و کوئری رو اجرا و کنی و نتایج رو دریافت کنی، در غیر این صورت خطایی که میده بگیر و در متغییر $pe ذخیره کن و بعد نمایش بده.
امنیت بیشتر در PDO با prepared
در PDO قابلیتی داریم بنام prepared که به شما اجازه میده از پارامترها استفاده کنید و مقادیر رو با پارامترها به کوئری پاس بدید، همین کار باعث میشه که شما بصورت مستقیم مقادیر رو به دیتابیس ارسال نکنید و همین کار امنیت رو بیشتر میکنه.
خوب بریم ببینیم چطور میتونیم اطلاعات یک جدول رو با perpared از دیتابیس بگیریم. اول به دیتابیس متصل میشیم:
<?php $host = "localhost"; $dbname = "parvanweb"; $username = "prv"; $password = "123456"; $conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password); ?>
خوب حالا میخوایم با شرط اطلاعات جدول users از دیتابیس parvanweb رو بخونیم و نمایش بدیم. برای دستورات شرطی باید پارامتر به کوئری پاس بدیم. این پارامترهارو مستقیم پاس نمیدیم و اون هارو با استفاده از prepared پاس میدیم:
$sql = 'SELECT * FROM users WHERE username = :user OR email = :email';
اگر به کوئری بالا دقت کنید میبینید کوئری رو در متغییر $sql ذخیره کردیم، که پارامترهارو هم بصورت :parameter پاس دادیم. حالا باید بگیم مقادیر این پارامترها چیه، اول باید مشخص کنیم که میخوایم از prepared استفاده کنیم پس کوئری رو با متد prepared در متغییر $q ذخیره میکنیم.
$q = $conn->prepare($sql);
حالا باید با متد execute متغییر $q که همون کوئری ماست رو اجرا کنیم:
$q->execute(array(':user' => 'mitra', ':email' => 'info@iranweblearn.com'));
در اینجا موقع اجرا میگیم این پارامترهارو به کوئری پاس بده و بعد اجراش کن. به همین راحتی : )
حالا با متد setFetchMode مقادیر این کوئری رو میگیریم و بعد با حلقه ی while اطلاعات دریافتی رو نمایش میدیم.
$q->setFetchMode(PDO::FETCH_ASSOC);
و اما نحوه نمایش اطلاعات یعنی:
خوب امیدوارم از این آموزش خوشتون اومده باشه و در پایان می تونید این پروژه رو به صورت کامل دانلود نمایید.
منبع آموزش: وبسایت مدرسه مجازی ایرانیان
سلام خدمت شما، در خدمتتون هستم
سلام خدمت شما، در خدمتتون هستم
ثبت نظر جدید لغو پاسخ
لیست نظرات
-
چگونه از غول های فارسی بک لینک رایگان بگیریم ؟!!!
15 فروردين 140418 1,293 0 -
افزونه پنل کاربری حرفه ای و بهترین افزونه ثبت نام وردپرس MemberShip Pro درگاه زرین پال
12 شهريور 139915 5,326 5 -
افزایش سرعت بارگذاری – بهترین افزونه های کش وردپرس
20 آذر 139314 313 0 -
دانلود افزونه Gravity Forms : ساخت انواع فرم های وردپرس
27 آذر 139313 400 0 -
ارسال خودکار مطالب وردپرس به تلگرام، اینستاگرام و سایر شبکههای اجتماعی
1 ارديبهشت 14049 3,525 0 -
آموزش قرار دادن سه نقطه برای متن های بسیار طولانی در وب سایت
8 تير 13969 1,784 3 -
معرفی 7 افزونه ساخت سایت مشاور املاک وردپرس
21 ارديبهشت 14049 2,967 4.8 -
آموزش افزونه حتما بخوانید وردپرس
25 بهمن 13958 389 5
-
دامین اتوریتی چیست و چگونه آن را افزایش دهیم؟ + افزایش اعتبار دامنه و پیج اتوریتی (Domain Authority)
5 خرداد 14040 276 0 -
چگونه بر فعالیت کاربران سایت وردپرس نظارت کنیم؟ | ردیابی و بررسی رفتار کاربر در وردپرس
5 خرداد 14040 276 0 -
چگونه خطای Missed Schedule در وردپرس را حل کنیم؟ | ارور زمانبندی از دست رفته
4 خرداد 14040 9 0 -
چگونه خطای سرچ کنسول گوگل با عنوان “Clickable Elements Too Close Together” را در المنتور حل کنیم؟
4 خرداد 14040 18 0 -
چگونه مشکل لود نشدن المنتور را حل کنیم؟ | 5 روش حل خطا لودینگ و باز نشدن المنتور
3 خرداد 14040 19 0 -
افزودن واترمارک خودکار بر روی تصاویر شاخص وردپرس | افزودن اتوماتیک لوگو به تصاویر وردپرس و ووکامرس
3 خرداد 14040 330 5 -
افزونه های آنالیز و گزارش موجودی ووکامرس + سیستم اطلاع رسانی موجود شدن محصولات + مقایسه
2 خرداد 14041 376 0 -
بهترین افزونههای کپچا برای وردپرس + مقایسه + آموزش افزونه hCaptcha for WordPress
2 خرداد 14041 587 5
تبلیغات متنی
به این مطالب نیز شاید علاقه مند باشید ...
مطالب مشابه
دامین اتوریتی چیست و چگونه آن را افزایش دهیم؟ + افزایش اعتبار دامنه و پیج اتوریتی (Domain Authority)
دامین آتوریتی چیست؟ (Domain Authority) در دنیای سئو و بازاریابی دیجیتال، یکی از اصطلاحاتی که زیاد به گوش میرسد، «اعتبار دامنه» یا Domain Authority (DA) است. اگر صاحب یک وبسایت هستید یا در زمینه بهینهسازی سایت فعالیت میکنید، احتمالاً این سؤال برایتان پیش آمده که اعتبار دامنه چیست و چه اهمیتی در موفقیت آنلاین شما […]
چگونه بر فعالیت کاربران سایت وردپرس نظارت کنیم؟ | ردیابی و بررسی رفتار کاربر در وردپرس
معرفی افزونه های ردیابی و بررسی رفتار کاربر در وردپرس در مدیریت سایتهای وردپرسی، ردیابی رفتار کاربران، مخصوصاً در سایتهایی با چند نویسنده یا نقشهای کاربری مختلف، اهمیت بالایی دارد. استفاده از افزونه نظارت فعالیت کاربران باعث میشود همیشه از اقدامات انجامشده در سایت آگاه باشید، جلوی اشتباهات احتمالی را بگیرید و امنیت سایت را […]
چگونه خطای Missed Schedule در وردپرس را حل کنیم؟ | ارور زمانبندی از دست رفته
انتشار خودکار پستها یکی از ویژگیهای کاربردی وردپرس است که به شما امکان میدهد محتوای خود را برای آینده زمانبندی کنید. با این حال، گاهی اوقات پستهای برنامهریزیشده در زمان تعیینشده منتشر نمیشوند و با اروری با عنوان Missed Schedule Error یا همان خطای زمانبندی از دست رفته در وردپرس مواجه میشوید. این مشکل نهتنها […]
چگونه خطای سرچ کنسول گوگل با عنوان “Clickable Elements Too Close Together” را در المنتور حل کنیم؟
بررسی و رفع خطای «عناصر قابل کلیک بیش از حد نزدیک به یکدیگر» در سرچ کنسول یکی از مشکلات متداولی که ممکن است در گزارش Mobile Usability گوگل سرچ کنسول مشاهده کنید، خطای عناصر قابل کلیک خیلی نزدیک به هم هستند (Clickable Elements Too Close Together) است. این خطا معمولاً نشاندهندهی آن است که تجربه […]
باسلام
لطفا لینک منبع رو فراموش نکنید.
http://iranweblearn.com
باتشکر از رعایت حفظ کپی رایت شما
سلام ؛ بله لینک قرار داده شد خواهش میکنم.