علیرضا تحریری
علیرضا تحریری
خواندن ۴ دقیقه·۱ سال پیش

آموزش PHP: اتصال به MySQL با PDO

آموزش PHP: اتصال به MySQL با PDO
آموزش PHP: اتصال به MySQL با PDO

اتصال به پایگاه داده (Database)

خلاصه: در این مقاله ما میخواهیم که قدم به قدم درباره اتصال دیتابس MySQL با استفاده از PDO در PHP آشنا بشویم.

پیش نیازها

قبل از اتصال به پایگاه داده MySQL شما باید موارد زیر را داشته باشید.

  • یک سرور دیتابس MySQL، یک پایگاه داده، یک حساب کاربری که به پایگاه داده دسترسی داشته باشد.
  • باید درایور PDO MySQL  در فایل php.ini فعال شده باشد.

مرحله 1 - تنظیم پارامترهای پایگاه داده MySQL

فرض کنید که یک پایگاه داده MySQL به شکل local دارید که اطلاعات زیر را دارد:

اتصال به MySQL

خلاصه: در این آموزش، گام به گام یاد خواهید گرفت که چگونه با استفاده از PDO از PHP به پایگاه داده MySQL متصل شوید.

پیش نیازها

قبل از اتصال به سرور پایگاه داده MySQL، موارد زیر را باید داشته باشید:

  • یک سرور پایگاه داده MySQL، یک پایگاه داده و یک حساب کاربری که دسترسی به پایگاه داده دارد.
  • در فایل php.ini، درایور PDO MySQL را فعال کنید.

تنظیم پارامترهای پایگاه داده MySQL

فرض کنید یک سرور پایگاه داده MySQL محلی دارید که اطلاعات زیر را دارد

  1. میزبان localhost است
  2. نام پایگاه داده bookdb در سرور پایگاه داده localhost.
  3. حساب کاربری با نام کاربری root و رمز عبور S@cr@t1! که به پایگاه داده bookdb دسترسی داشته باشد.

یک فایل کانفیگ به اسم config.php ایجاد کنید و مقادیر دیتابیس را در آن قرار دهید.

<?php $host = 'localhost'; $db = 'bookdb'; $user = 'root'; $password = 'S@cr@t1!';

برای دسترسی به مقادیر دیتابیس در فایل config.php از دستور `require` استفاده می کنیم.

<?php require 'config.php';

مرحله 2 - فعال کردن درایور PDO_MySQL

PDO_MYSQL یک درایور است که رابط PDO را پیاده سازی می کند. PDO از درایور PDO_MYSQL برای اتصال به پایگاه داده MySQL استفاده می کند.

برای بررسی اینکه درایور PDO_MYSQL فعال شده است، فایل php.ini را باز کنید. فایل php.ini معمولاً در دایرکتوری php قرار دارد. به عنوان مثال، اگر از XAMPP در ویندوز استفاده می کنید، می توانید فایل php.ini را در زیر دایرکتوری C:\xampp\php پیدا کنید.

خط extension در فایل php.ini به شکل زیر نشان داده شده است:

;extension=php_pdo_mysql.dll

برای فعال کردن این درایور، باید با حذف نشانه سمیکولون (;) از ابتدای خط، آن را غیرفعال کنید:

extension=php_pdo_mysql.dll

سپس برای اعمال تغییرات، باید وب سرور را دوباره راه‌اندازی کنید.

نام منبع داده MySQL PDO

از نام منبع داده (DSN) استفاده می کند که شامل اطلاعات زیر است:

  • The database server host
  • The database name
  • The user
  • The password
  • and other parameters such as character sets, etc.

PDO از این اطلاعات برای برقراری ارتباط با سرور پایگاه داده استفاده می کند. برای اتصال به سرور پایگاه داده MySQL، از فرمت نام منبع داده زیر استفاده می کنید:

&quotmysql:host=host_name;dbname=db_name;charset=UTF8&quot

برای مثال:

$dsn = &quotmysql:host=localhost;dbname=bookdb;charset=UTF8"
Note that the charset UTF-8 sets the character set of the database connection to UTF-8.

اتصال به MySQL

اسکریپت فایل index.php زیر نحوه اتصال به پایگاه داده bookdb را در سرور پایگاه داده MySQL با حساب root نشان می دهد:

<?php require 'config.php'; $dsn = &quotmysql:host=$host;dbname=$db;charset=UTF8" try { $pdo = new PDO($dsn, $user, $password); if ($pdo) { echo &quotConnected to the $db database successfully!" } } catch (PDOException $e) { echo $e->getMessage(); }

چطوری کار میکند؟

  1. یک شیء جدید ازPDO جدید با (DSN)، کاربر و رمز عبور ایجاد کنید. شیء PDO یک Objecy از کلاس PDO است.
  2. در صورت برقراری ارتباط با موفقیت یا وقوع خطا، پیام موفقیت یا پیام خطا را نشان دهید.

اگر همه چیز را به درستی تنظیم کرده باشید، پیام زیر را خواهید دید:

Connected to the bookdb database successfully!

روش های Error handling

PDO سه استراتژی مختلف برای کنترل خطا پشتیبانی می کند:

PDO::ERROR_SILENT - PDO یک کد خطا برای بازرسی با استفاده از روش های PDO::errorCode() و PDO::errorInfo() تنظیم می کند.

PDO::ERROR_SILENT حالت پیش فرض است.

PDO::ERRMODE_WARNING - علاوه بر تنظیم کد خطا، PDO یک پیام E_WARNING صادر می کند.

PDO::ERRMODE_EXCEPTION - علاوه بر تنظیم کد خطا، PDO یک PDOException را ارسال می کند.

برای تنظیم Error handling strategies، می توانید یک آرایه برای ثبت Attribute به سازنده PDO استفاده کنید، مانند:

$pdo = new PDO($dsn, $user, $password, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);

یا میتوانید از روش setAttribute() در PDO استفاده کنید، مانند:

$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

عیب یابی

اکثر خطاهایی را که هنگام اتصال به پایگاه داده MySQL با آن مواجه می شوید:

1. اگر شما درایور MySQL را در فایل php.ini فعال نکرده باشید خطای زیر را دریافت خواهید کرد.

could not find driver

2. اگر رمز عبور را اشتباه وارد کنید خطای زیر را دریافت خواهید کرد.

SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES)

3. اگر نام پایگاه داده را اشتباه وارد کنید و پایگاه داده وجود نداشته باشد، خطای زیر را دریافت خواهید کرد.

SQLSTATE[HY000] [1049] Unknown database 'bookdb'

4. اگر اطلاعات مربوط به hostname را اشتباه وارد کنید خطای زیر را دریافت خواهید کرد.

SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: No such host is known.

خلاصه

  1. برای اتصال به پایگاه داده MySQL از PHP PDO، درایور PDO_MYSQL را در فایل php.ini فعال کنید.
  2. یک نمونه از کلاس PDO را برای برقراری ارتباط با پایگاه داده MySQL ایجاد کنید.
  3. از سازنده PDO یا متد setAttribute() برای تنظیم Error handling استفاده کنید.

شما هم اکنون به پایگاه داده متصل شده اید. خیلی ممنون از شما که این مقاله را مطالعه کردید، اگر در خصوص در این مقاله هرگونه مشکل/سوالی داشتید حتما در قسمت نظرات سایت با ما در میان بگذراید.

منبع: وبسایت میموک

رمز عبورحساب کاربریpdo
سلام علیرضا تحریری هستم برنامه نویس بک اند که با فریم های Laravel،‌ Livewire، Lumen، Tailwind CSS، Alpine JS و ... کد مینویسم.
شاید از این پست‌ها خوشتان بیاید