تنظیم پارامترهای پایگاه داده MySQL
فرض کنید یک سرور پایگاه داده MySQL محلی دارید که اطلاعات زیر را دارد
- میزبان localhost است
- نام پایگاه داده bookdb در سرور پایگاه داده localhost.
- حساب کاربری با نام کاربری root و رمز عبور S@cr@t1! که به پایگاه داده bookdb دسترسی داشته باشد.
اتصال به پایگاه داده (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 محلی دارید که اطلاعات زیر را دارد
- میزبان localhost است
- نام پایگاه داده bookdb در سرور پایگاه داده localhost.
- حساب کاربری با نام کاربری 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، از فرمت نام منبع داده زیر استفاده می کنید:
"mysql:host=host_name;dbname=db_name;charset=UTF8"
برای مثال:
$dsn = "mysql: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 = "mysql:host=$host;dbname=$db;charset=UTF8";
try {
$pdo = new PDO($dsn, $user, $password);
if ($pdo) {
echo "Connected to the $db database successfully!";
}
} catch (PDOException $e) {
echo $e->getMessage();
}
چطوری کار میکند؟
- یک شیء جدید ازPDO جدید با (DSN)، کاربر و رمز عبور ایجاد کنید. شیء PDO یک Objecy از کلاس PDO است.
- در صورت برقراری ارتباط با موفقیت یا وقوع خطا، پیام موفقیت یا پیام خطا را نشان دهید.
اگر همه چیز را به درستی تنظیم کرده باشید، پیام زیر را خواهید دید:
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.
خلاصه
- برای اتصال به پایگاه داده MySQL از PHP PDO، درایور PDO_MYSQL را در فایل php.ini فعال کنید.
- یک نمونه از کلاس PDO را برای برقراری ارتباط با پایگاه داده MySQL ایجاد کنید.
- از سازنده PDO یا متد setAttribute() برای تنظیم Error handling استفاده کنید.
شما هم اکنون به پایگاه داده متصل شده اید. خیلی ممنون از شما که این مقاله را مطالعه کردید، اگر در خصوص در این مقاله هرگونه مشکل/سوالی داشتید حتما در قسمت نظرات سایت با ما در میان بگذراید.
منبع: phptutorial