آموزش رایگان PHP

آموزش گام به گام اتصال به دیتابیس با MySQLi در PHP (امن و استاندارد)

4م مرداد 1405 محراب حسن زاده
آموزش گام به گام اتصال به دیتابیس با MySQLi در PHP (امن و استاندارد)

مقدمه‌ای بر اتصال به دیتابیس با MySQLi

یکی از اساسی‌ترین مراحل در توسعه وب‌سایت‌های پویا (Dynamic) با زبان PHP، برقراری ارتباط با پایگاه داده است. سیستم مدیریت پایگاه داده MySQL یکی از محبوب‌ترین دیتابیس‌ها در دنیای وب است و ابزار استاندارد و بهینه‌ای که خود زبان PHP برای تعامل با آن معرفی کرده، افزونه MySQLi (مخفف MySQL Improved) نام دارد.

توسعه‌دهندگان وب برای کار با دیتابیس عموماً از دو روش PDO یا MySQLi استفاده می‌کنند. اگر پروژه شما صرفاً متکی به پایگاه داده MySQL است، افزونه MySQLi به دلیل سرعت عالی و کاربری ساده بهترین گزینه برای شماست.

روش‌های استفاده از MySQLi در PHP

افزونه MySQLi به شما اجازه می‌دهد به دو سبک کاملاً متفاوت کدنویسی کنید:

  • روش شیءگرا (Object-Oriented - OOP): روش مدرن‌تر و تمیزتر که در اکثر پروژه‌های بزرگ استفاده می‌شود.
  • روش رویه‌ای (Procedural): روش سنتی مبتنی بر توابع که در میان توسعه‌دهندگان قدیمی محبوبیت دارد.

در ادامه هر دو روش را با مثال عملی و استانداردهای گوگل بررسی می‌کنیم.

روش اول: اتصال به دیتابیس به صورت شیءگرا (OOP)

این روش به دلیل قابلیت خوانایی بالاتر و امکان استفاده آسان‌تر در ساختارهای کلاس‌بندی شده، به شدت توصیه می‌شود. برای اتصال ابتدا یک شیء از کلاس mysqli ایجاد می‌کنیم:


$servername = "localhost";
$username = "root";
$password = "";
$dbname = "my_database";

// ایجاد شیء اتصال
$conn = new mysqli($servername, $username, $password, $dbname);

// چک کردن وضعیت اتصال
if ($conn--->connect_error) {
    die("اتصال به دیتابیس شکست خورد: " . $conn->connect_error);
}
echo "اتصال با موفقیت به روش شیءگرا برقرار شد!";

// بستن اتصال پس از اتمام کار
$conn->close();

روش دوم: اتصال به دیتابیس به صورت رویه‌ای (Procedural)

اگر پروژه‌های کوچک‌تری دارید یا به ساختار توابع علاقه‌مندید، می‌توانید از تابع مستقیم mysqli_connect استفاده کنید:


$servername = "localhost";
$username = "root";
$password = "";
$dbname = "my_database";

// ایجاد اتصال
$conn = mysqli_connect($servername, $username, $password, $dbname);

// بررسی اتصال
if (!$conn) {
    die("اتصال برقرار نشد: " . mysqli_connect_error());
}
echo "اتصال با موفقیت به روش رویه‌ای برقرار شد!";

// بستن اتصال
mysqli_close($conn);

نکات امنیتی بسیار مهم در زمان اتصال

هنگام پیاده‌سازی اتصال دیتابیس بر روی سرورهای واقعی، رعایت نکات زیر از هک شدن و نشت اطلاعات دیتابیس شما جلوگیری می‌کند:

۱. عدم نمایش مستقیم خطاها به کاربران نهایی

همان‌طور که در کدهای بالا مشاهده کردید، توابعی مثل $conn->connect_error پیام‌های خطای سرور را نمایش می‌دهند. نمایش این خطاها به کاربر نهایی در محیط Production (سایت زنده) خطرناک است؛ زیرا اطلاعاتی از ساختار پوشه‌ها و نام دیتابیس شما را فاش می‌کند. همیشه در سایت واقعی خروجی‌های خطا را لاگ (Log) کنید و به کاربر پیام عمومی نمایش دهید.

۲. تغییر کاراکترست به UTF-8

جهت پشتیبانی کامل از زبان فارسی و عدم نمایش کلمات به صورت علامت سوال در پایگاه داده، همیشه بلافاصله پس از ایجاد اتصال، کاراکترست اتصال را روی UTF-8 تنظیم کنید:

$conn->set_charset("utf8");

نتیجه‌گیری

استفاده از MySQLi روشی فوق‌العاده سریع و استاندارد برای ارتباط با پایگاه داده در برنامه‌نویسی PHP است. شما می‌توانید بسته به ساختار پروژه خود از روش‌های شیءگرا یا رویه‌ای استفاده نمایید. حتماً پس از پایان کار با پایگاه داده، اتصال خود را ببندید تا منابع سرور بهینه مدیریت شوند.


پیشنمایش

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

آموزش کامل استفاده از float، clear، text و font در CSS برای طراحی وب: راهنمای جامع
6م شهریور 1402

آموزش کامل استفاده از float، clear، text و font در CSS برای طراحی وب: راهنمای جامع

مطالعه بیشتر
آموزش جامع کار با فرم‌ها در PHP (امنیت و اعتبارسنجی طبق استاندارد گوگل)
27م تیر 1405

آموزش جامع کار با فرم‌ها در PHP (امنیت و اعتبارسنجی طبق استاندارد گوگل)

مطالعه بیشتر
آموزش کامل حلقه foreach در PHP برای پیمایش آرایه‌ها (به زبان ساده)
16م تیر 1405

آموزش کامل حلقه foreach در PHP برای پیمایش آرایه‌ها (به زبان ساده)

مطالعه بیشتر
کاربرد تگ‌های meta، title و keywords در سئو: راهنمای جامع بهینه‌سازی وب‌سایت
25م مرداد 1402

کاربرد تگ‌های meta، title و keywords در سئو: راهنمای جامع بهینه‌سازی وب‌سایت

مطالعه بیشتر
آموزش کامل دستورات شرطی در PHP: راهنمای جامع if، else و elseif
4م تیر 1405

آموزش کامل دستورات شرطی در PHP: راهنمای جامع if، else و elseif

مطالعه بیشتر
آموزش کار با رویدادهای فرم و اعتبارسنجی فرم‌ها در جاوا اسکریپت: راهنمای جامع
3م آبان 1403

آموزش کار با رویدادهای فرم و اعتبارسنجی فرم‌ها در جاوا اسکریپت: راهنمای جامع

مطالعه بیشتر
آشنایی با Inheritance در CSS: اصول وراثت و مدیریت استایل‌ها
12م آبان 1403

آشنایی با Inheritance در CSS: اصول وراثت و مدیریت استایل‌ها

مطالعه بیشتر
آشنایی با Vue CLI و ایجاد پروژه‌های پیشرفته در Vue.js | راهنمای کامل
29م آذر 1404

آشنایی با Vue CLI و ایجاد پروژه‌های پیشرفته در Vue.js | راهنمای کامل

مطالعه بیشتر
کار با تصاویر SVG در CSS: کنترل استایل و استفاده از گرافیک‌های مقیاس‌پذیر
16م آبان 1403

کار با تصاویر SVG در CSS: کنترل استایل و استفاده از گرافیک‌های مقیاس‌پذیر

مطالعه بیشتر
معرفی MySQL و phpMyAdmin: راهنمای جامع مدیریت پایگاه داده برای توسعه‌دهندگان وب
4م مرداد 1405

معرفی MySQL و phpMyAdmin: راهنمای جامع مدیریت پایگاه داده برای توسعه‌دهندگان وب

مطالعه بیشتر
آموزش کامنت‌ها و کاراکترهای خاص در HTML و CSS: نحوه استفاده و مدیریت
23م مرداد 1402

آموزش کامنت‌ها و کاراکترهای خاص در HTML و CSS: نحوه استفاده و مدیریت

مطالعه بیشتر
آموزش کار با flex-grow، flex-shrink و flex-basis در CSS Flexbox: مدیریت اندازه و فضای عناصر
11م آبان 1403

آموزش کار با flex-grow، flex-shrink و flex-basis در CSS Flexbox: مدیریت اندازه و فضای عناصر

مطالعه بیشتر

تمامی حقوق معتلق به ناشر سایت است و کپی از آن پیگرد قانونی دارد