اتصال PHP و MySQL در CMS bluetronix
در این آموزش، شما یک جدول پایگاه داده ایجاد میکنید و آن را به یک صفحه CMS متصل میکنید. با استفاده از مثالهای عملی، دستورات SQL INSERT، REPLACE، SELECT و UPDATE را یاد خواهید گرفت و میفهمید که چگونه مقادیر پایگاه داده را از طریق جاهای خالی HTML در وبسایت خود نمایش دهید.
ایجاد صفحه مثال
برای این آموزش ابتدا یک صفحه نمونه جدید ایجاد کن.
برای مثال:
مثال PHP MySQL
صفحه ممکن است در ابتدا کاملاً خالی باشد.
سپس صفحه را در ویرایشگر HTML عادی باز کرده و یک بخش دلخواه از صفحه را اضافه کن. این بخش HTML بعداً به عنوان الگو برای دادههایی که از پایگاه داده بارگذاری میشوند، عمل میکند.
ایجاد جدول پایگاه داده
قبل از اینکه بتوانی دادهها را ذخیره کنی، به یک جدول پایگاه داده نیاز داری.
برای این کار:
پایگاه داده → جدول جدید
برای این مثال از جدولی با ستونهای ID، تاریخ، عنوان، توضیحات و تصویر استفاده میکنیم.
ID شامل شناسه منحصر به فرد رکورد است. تاریخ تاریخ و زمان را ذخیره میکند. عنوان عنوان را شامل میشود، توضیحات شامل متن توصیفی بلندتری است و تصویر نام تصویر را نشان میدهد.
نامهای جداول، ستونها و متغیرها باید در تمامی آموزشهای توسعهدهندگان به زبان انگلیسی استفاده شوند.
باز کردن کد PHP
پس از ایجاد جدول، به صفحه نمونه خود باز میگردی.
در آنجا باز کن:
کد PHP
از این بخش میتوانی به طور مستقیم به پایگاه داده دسترسی پیدا کنی.
ذخیرهسازی دادهها با INSERT یا REPLACE
در مثال اول، یک رکورد را در جدول پایگاه دادهای که قبلاً ایجاد کردهای ذخیره میکنی.
ابتدا متغیرهای PHP مورد نیاز را تنظیم کن.
نمونه:
$ID = 1;
$Date = date("Y-m-d H:i:s");
$Title = "My Title";
$Description = "My Description";
$Image = "my-image.jpg";
این مقادیر را میتوانی با یک بیان آماده MySQL ذخیره کنی.
برای دسترسی به پایگاه داده باید به طور کلی از بیانهای آماده استفاده کنی. بدین ترتیب، مقادیر به صورت جداگانه از دستور SQL اصلی پردازش میشوند.
نمونه با REPLACE:
$stmt = $mysqli->prepare("REPLACE INTO ExampleTable (ID, `Date`, Title, Description, Image) VALUES (?, ?, ?, ?, ?)");
$stmt->bind_param("issss", $ID, $Date, $Title, $Description, $Image);
$stmt->execute();

سپس یک بار صفحه را فراخوانی کن.
سپس باز کن:
پایگاه داده → نمایش
در آنجا باید رکورد جدید ایجاد شده نمایان باشد.
تفاوت بین INSERT و REPLACE
INSERT یک رکورد جدید اضافه میکند.
اگر رکوردی با همان شناسه منحصربهفرد یا کلید اصلی وجود داشته باشد، یک INSERT معمولی میتواند خطای کلید تكراری ایجاد کند.
REPLACE میتواند استفاده شود اگر بخواهی یک رکورد موجود با همان شناسه منحصربهفرد را جایگزین کنی.
برای مثالهای آزمایشی با شناسه ثابت، REPLACE معمولاً عملیتر است، زیرا صفحه میتواند چندین بار فراخوانی شود.
خواندن دادهها با SELECT
در مرحله بعد، رکورد ذخیره شده را دوباره از پایگاه داده میخوانی.
نمونه:
$stmt = $mysqli->prepare("SELECT `Date`, Title, Description, Image FROM ExampleTable WHERE ID = ?");
$stmt->bind_param("i", $ID);
$stmt->execute();
$result = $stmt->get_result();
if($row = $result->fetch_assoc()) {
$Date = $row["Date"];
$Title = $row["Title"];
$Description = $row["Description"];
$Image = $row["Image"];
}
مقادیر خوانده شده در متغیرهای $Date، $Title، $Description و $Image قرار میگیرند.
اتصال پایگاه داده و $LayoutHTML
متغیر جهانی CMS $LayoutHTML در طول فرآیند رندرینگ HTML فعلی تولید شده صفحه را شامل میشود.
به این ترتیب میتوانی نشانهگذاریهای خود را در داخل کد HTML با دادههای جدول MySQL جایگزین کنی.
قرار دادن جاگذینیها در کد HTML
دوباره کد HTML صفحه نمونهات را باز کن.
محتوای بخش صفحهای که قبلاً درج کردهای را میتوانی حالا با نشانهگذاریهای خود جایگزین کنی.
برای مثال:
__MyDate__
__MyTitle__
__MyDescription__
__MyImage__
یک مثال ساده HTML:
<section>
<div class="container">
<img src="__MyImage__" alt="">
<small>__MyDate__</small>
<h2>__MyTitle__</h2>
<p>__MyDescription__</p>
</div>
</section>

برای این اولین مثال MySQL، میتوان نشانههای ترجمه موجود را ابتدا حذف کرد. بدین ترتیب، آسانتر میتوان دید که کدام محتوا بهطور مستقیم توسط PHP و MySQL جایگزین میشود.
استفاده از مقادیر پایگاه داده در طرح بندی
پس از بارگیری دادهها با SELECT، نشانهها را در داخل $LayoutHTML جایگزین میکنی.
نمونه:
$LayoutHTML = str_replace("__MyDate__",$Date,$LayoutHTML);
$LayoutHTML = str_replace("__MyTitle__",$Title,$LayoutHTML);
$LayoutHTML = str_replace("__MyDescription__",$Description,$LayoutHTML);
$LayoutHTML = str_replace("__MyImage__",$Image,$LayoutHTML);
در نتیجه، روند به این صورت است:
پایگاه داده MySQL → SELECT → متغیرهای PHP → str_replace() → $LayoutHTML → وبسایت نهایی

محتوای پایگاه داده بهطور مستقیم در داخل طرح HTML موجود نمایش داده میشود.
آزمون تغییرات به صورت مستقیم از طریق پایگاه داده
باز کن:
پایگاه داده → نمایش
سپس رکورد موجود را ویرایش کن.
برای مثال میتوانی عنوان My Title را به New My Title تغییر دهی.
همچنین میتوانی تصویر را از طریق BX-Image-Button تغییر دهی.
پس از ذخیرهسازی و بارگذاری مجدد وبسایت، دادههای تغییر یافته مستقیماً در طرح صفحه نمایش داده میشوند.
بدین ترتیب ارتباط مستقیمی بین وجود دارد:
دیتابیس → PHP → $LayoutHTML → وبسایت
تغییر دادهها با UPDATE
با UPDATE میتوانی رکورد موجود را مستقیماً از طریق PHP تغییر دهی.
در اینجا با یک شرط مشخص میشود که کدام رکورد باید تغییر یابد.
پس از اجرای بهروزرسانی، میتوانی دادهها را دوباره با SELECT بارگذاری کرده و سپس از طریق $LayoutHTML در صفحه نمایش دهی.
خلاصه
با PHP و MySQL میتوانی دادهها را در داخل CMS بلوتروینکس ذخیره، خواندن و تغییر دهی.
INSERT یا REPLACE دادهها را ذخیره میکند، SELECT دادهها را میخواند و UPDATE رکوردهای موجود را تغییر میدهد.
از طریق $LayoutHTML میتوانی دادههای بارگذاری شده را مستقیماً در ساختارهای HTML موجود قرار دهی.
بدین ترتیب محتویات دیتابیس بهطور شسته و رفتهای با طرح HTML یک صفحه CMS ارتباط برقرار میکند.
سوالات متداول
چه سوالاتی را مشتریان معمولاً از ما میپرسند
برای این آموزش PHP و MySQL به چه چیزهایی نیاز دارم؟
تو به یک دسترسی توسعهدهنده به CMS بلوتروینکس نیاز داری. همچنین باید از نحوه عملکرد فرآیند رندرینگ سایت CMS و وظیفه متغیر $LayoutHTML مطلع باشی.
کجا یک جدول جدید در دیتابیس ایجاد کنم؟
در CMS به بخش دیتابیس → جدول جدید برو.
کدام ستونها در مثال استفاده میشوند؟
در آموزش از ستونهای ID، Date، Title، Description و Image استفاده میشود.
چرا باید از Prepared Statements استفاده کنم؟
Prepared Statements مقدارهای منتقل شده را از دستورات SQL واقعی جدا میکند و بنابراین برای دسترسی به دیتابیس مناسب است.
تفاوت بین INSERT و REPLACE چیست؟
INSERT یک رکورد جدید اضافه میکند. REPLACE میتواند یک رکورد موجود با همان ID منحصر به فرد یا کلید اصلی را جایگزین کند.
چگونه دادهها را از دیتابیس بخوانم؟
برای این کار از یک دستور SELECT استفاده میکنی. مقادیر بارگذاری شده را میتوانی سپس در متغیرهای PHP مانند $Title، $Description یا $Image ذخیره کنی.
چطور دادههای MySQL به HTML صفحه منتقل میشوند؟
ابتدا placeholderهای دلخواه خود را در کد HTML قرار میدهید و سپس با استفاده از str_replace() در $LayoutHTML آنها را با مقادیر بارگذاریشده پایگاه داده جایگزین میکنید.
چطور میتوانم بررسی کنم که اتصال بین پایگاه داده و وبسایت کار میکند؟
به پایگاهداده → نمایش بروید، یک رکورد موجود را تغییر دهید و سپس صفحه وب را دوباره بارگذاری کنید. مقادیر جدید باید بلافاصله در طراحی صفحه ظاهر شوند.
UPDATE برای چه استفاده میشود؟
با UPDATE میتوانید یک رکورد موجود را بهطور مستقیم از طریق PHP تغییر دهید.
آیا میتوانم تصاویر را از پایگاه داده در طراحی صفحه استفاده کنم؟
بله. در این مثال، مقدار تصویر در متغیر $Image ذخیره میشود و با استفاده از یک placeholder خاص مانند __MyImage__ در $LayoutHTML قرار میگیرد.