Friday, September 16, 2016

پرس و جوهای سریع SQL در PHP با ezSQL

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


ezSQL چیست و چه کاربردی برای ما داد؟


در پروژه‌های بزرگ معمولا از CMSهای بزرگ و یا فریم ورک‌های قدرتمندی همچون Yii یا CodeIgniter استفاده می‌کنیم اما در پروژه‌های کوچکتر نیازی به استفاده از این فریم‌ورک‌ها و CMSها نیست و معمولا از توابع خود PHP همچون mysql_query()‎ برای ارسال پرس و جوها به پایگاه داده استفاده می‌کنیم. گرچه این توابع کاربردی هستند ولی استفاده از توابع mysql_xxx یا مشابه را پیشنهاد نمی‌کنیم چون: اکثر وب سایت‌ها از mySQL برای پایگاه داده خود استفاده می‌کنند اما اگر زمانی نیاز به تغییر این پایگاه داده به Oracle ،PostgreSQL یا… کنند می‌بایست کدهای سایت را تغییر دهند. همانطور که شما نیاز دارید، ezSQL به شما اجازه کار آسان با پایگاه داده‌های مختلف را می‌دهد اما توجه داشته باشید که ezSQL از تفاوت بین نوشتار SQL در بین پایگاه داده‌های مختلف پشتیبانی نمی‌کند. ezSQL یک کلاس PHP است که برای کار آسان با پایگاه داده ایجاد شده است. ezSQL به صورت متن باز منتشر شده و در وب‌سایت های خیلی زیادی مورد استفاده قرار گرفته است و از آن می‌توان در PHP-PDO ،mySQL ،Oracle8 ،InterBase/FireBird PostgreSQL ،SQLite (PHP) ،SQLite (C++)‎ و MS-SQL استفاده کرد


ezSQL و وردپرس


وردپرس را می‌توان بزرگترین پروژه‌ای دانست که از ezSQL استفاده می‌کند. اگر با wpdb در وردپرس آشنا باشید پس روش کار با ezSQL را نیز می‌دانید ولی اگر با wpdb آشنا نیستید اصلا نگران نباشید چون یادگیری و استفاده از ezSQL خیلی خیلی آسان است!.


دانلود و نصب ezSQL


برای شروع ezSQL را از اینجا دانلود کنید و فایل فشرده را بر روی سرور یا هارد خود استخراج کنید. برای استفاده از ezSQL نیاز به اینکلود کردن دو فایل به پروژه داریم: ۱-فایل ez_sql_core.php که هسته مرکزی ezsqlدر آن است ۲-بسته به پایگاه داده‌ای که استفاده می‌کنید می‌بایست یکی از فایل مخصوص پایگاه داده مد نظر را اینکاود کنیدو در اینجا ما از mySQL استفاده میکنیم پس فایل ez_sql_mysql.php را اینکلود می‌کنیم. برای استفاده از ezSQL می‌بایست یک شئ از آن ایجاد کرد که آن هم با فرستادن آرگومان‌های نام کاربر، گذرواژه کاربر، نام پایگاه داده و هاست را به تابع ez_sql_mysql می‌توان فراهم کرد. نمونه کد زیر نحوه اینکلود کردن و ایجاد یک شئ از ezSQL را نشان می‌دهد.



include_once "../shared/ez_sql_core.php";
include_once "ez_sql_mysql.php";
$db = new ezSQL_mysql('db_user','db_password','db_name','db_host');

اکنون یک شئ از ezSQL را در متغیر db در اختیار داریم که از آن برای اجرای هر نوع از پرس و جوها استفاده کنیم.


نمونه پرس و جوها


ezSQL دارای یک سری توابع است که استفاده از پایگاه داده را آسان می‌کند. در ادامه نمونه‌های استفاده از تعدادی از آن توابع را بررسی می‌کنیم.


اجرای هر نوع پرس و جو


در هنگام درج، حذف یا به صورت کلی هر نوع پرس و جوی می‌توان از تابع query استفاده کرد.



$db->query("INSERT INTO users (id, name, email) VALUES (NULL,'Ali Aghdam','aghdam@irtuts.com')");

نمونه کد بروز رسانی


$db->query("UPDATE users SET name = 'Ali' WHERE id = 1");

انتخاب یک ردیف


تابع get_row زمانی که بخواهید یک ردیف (row) از پایگاه داده را انتخاب کنید خیلی کاربردی است. کد زیر یک پرس و جوی ساده را اجرا و یک ردیف خروجی را نمایش می‌هد.



$user = $db->get_row("SELECT name, email FROM users WHERE id = 1");

echo $user->name;
echo $user->email;

انتخاب یک متغیر


برای انتخاب یک متغیر از تابع get_var می‌توان استفاده کرد. کد زیر تعداد تمامی ردیف‌های جدول users را حساب و نمایش می‌دهد.


$var = $db->get_var("SELECT count(*) FROM users");

echo $var;

انتخاب یک دسته از ردیف‌ها


گرچه توابع قبلی که توضیح دادیم جالب هستند اما زمانی وجود دارد که می‌خواهیم چندین ردیف از پایگاه داده را انتخاب کنیم در این مواقع می‌توان از تابع get_results استفاده کرد. برای چاپ خروجی این تابع می‌توان از یک foreach استفاده کرد.



$results = $db->get_results("SELECT name, email FROM users");

foreach ( $results as $user )
echo $user->name;
echo $user->email;


انتخاب یک ستون


اگر نیاز به انتخاب ستون دارید می‌توانید از get_col استفاده کنید. پارامتر دوم این تابع آفست یا مقدار متعادل کننده است.



foreach ( $db->get_col("SELECT name,email FROM users",0) as $name )
echo $name;


اشکال زدایی


برای زمان‌های که همه چیز به درستی پیش نمی‌رود ezSQL یک تابع در نظر گرفته است. تابع debug شرح آخرین پرس و جویِ استفاده شده را به همراه نتایج آن نشان می‌دهد.



$db->debug();

امیدوارم که از این مطلب خوشتون اومده باشه و ازش استفاده کرده باشین و امیدوارم که بتونید با استفاده از ezSQL در پروژه‌ی بعدیتون استفاده کنید چون خیلی کاربردی و سودمند است آیا اشتباه می‌کنم؟


منبع: پرس و جوهای سریع SQL در PHP با ezSQL

No comments:

Post a Comment