https://developer.wordpress.org/reference/classes/wpdb/
دیتابیس در وردپرس :
جایی که اطلاعات یوزرها یا به طور کلی دیتای وبسایت یا پلاگین هایمان را توی اون ذخیره میکنیم
دستورات sql در قالب وردپرس و کلاس وردپرسی بنام wpdb بررسی کنیم و این کلاس کار ما رو راحت میکنه و میتوانیم انواع query رو بدون اینکه درگیر اتصال اولیه به query بشیم روی دیتابیس بزینم که کلا ساختار queryها چهار بخش اصلی هست یعنی crud مخفف :
create
read یا select
update
delete
که هر کدام از اینها مخصوصا read خودش زیر مجموعههای زیادی داره مثلا انواع اقشام select کردن
برای شروع جلسه ابتدا یک تم ساده ایی که استاد ضمیمه کرده رو دانلود و در پوشه theme در لوکال هاست کپی کرده و روی وردپرس خودتون فعالش کنید
هر چیزی که توی فایل فانکشن موجود در قالب نوشته شده باشه از همه جا در دسترس است حتی توی صفحه منوی wp-admin بهش دسترسی داریم که اگه view page source در همون صفحه بزنیم مشخص است .
Using the $wpdb
global object
اولین کار استفاده از متغیر wpdb$ هس که یک global object محسوب میشود هر جا میخواییم query داشته باشیم ابتدای صفحه از این متغیر استفاده میکنیم$wpdb یک ابجکت از کلاس wpdb هس
محتوای داخل ابجکت شامل بیشمار key:value هس راجب جداول دیتابیس(نام جداول دیفالت وردپرس ،نام متدهاو....
متدهای زیادی برای read توی کلاس wpdb براش وجو داره متدهای کلاس یه محض نوشتن <<<--------- در دسترس است یعنی:
بحث شی گرایی است که اگر از یک کلاسی یک ابجکت بسازیم از طریق اون میتونیم به تمام متودهای درون اون دسترسی داشته باشیم
get result مثل fetch all در php میباشد باعث میشود تمام دیتای جدول موردنطر رور برگردونه هم در قالب ابجکت و هم در قالب آرایه.
کوتیشن " " برای این میگزاریم که اگه خواستیم متغیری درونش داشته باشیم مسکلس نداشته باشم
حالا میخوایم تمام دیتای جدول usrs رو دز مزوزگر ببینیم پس از متغبر بالا var-dump میگیریم :
نکته : جداولی که خودمون custom ایجاد میکنیم یعنی پیش فرض نیستن ساختار فراخوانیشون متفاوته که بعدا راجبشون صحبت میکینم
مهم : خروجی ارایه ای از key:valuesها هست که کلید ان ایندکس یوزرها و valueهای ان ابجکت هست
بطور کلی ارایه ای که درون ان ابجکت هس را در خروجی داریم و در عکس بصورت زیر بهتر قابل مفهوم است :
برای دیدین بهتر عکس ان را سیو و سپس زوم کنید
زمانی از get result استفاده میکینم که بخوایم لیست کاربران رو نشون بدیم و بعدش حلقه for each بزنیم روی get result این نوع دسترسی به دیتا که در این مثال میگیم اشتباه هست صرفا جهت بادگیری میکیم چون ما یک متود دیگه ای داریم بنام get row و میتوانیم فقط یک ردیف روو براحتی در بیاریم ازن روش استفاده میکنیم
تعیین یا عوض کردن جنس
نوع خروجی بصورت دیفالت یا پیش فرض یک ابجکت است ما میتوانیم با تعیین نوع خروجی دیفالت رو تغییر بدیم به ارایه نوع A یا ارایه n
associated array - ساختار string class نداشته باشه در این associated array جنس خروجی را همین گزاشتیم
array-N : کلیدهای ما رو بصورت INDEX یعنی INDEXED ARRAY برمیگردونه یعنی بجای کلید USER-LOGIN در عکس بالا که دیگه نداریمش باید شماره INDEX رو بگم :
چه زمانی از حلقه استفاده میکنیک :
زمانی که بخوایم به اضای هر عضو از ارایه یه کاری روی هر عضو انجام بدیم مثلا زمانی که دو تا یوزر توی دیتابیس داشته یاشیم ظبیعتا دو ازایه ما دو عضو داره که به ازای هر عضو بخوایم کاری روش انجام بدیم
در حلقه FOREACH گفتیم توی پرانتز جلوهش که فرض کن هر عضو اریه اسمش ITEM باشه
ادامه مباحث QURYهای مربوط به SELECT در جلسه بعد