اتصال به MySQL (MySQL Connect)
اینجا اتصال MySQL را خیلی ساده می گوییم. «اتصال (Connect)» یعنی وصل شدنِ برنامه به سرور پایگاه داده. در PHP دو راه اصلی داریم: افزونه MySQLi و PDO. هر دو امن تر با «عبارتِ آماده (Prepared Statement)» کار می کنند.
کدام را انتخاب کنم؟ MySQLi یا PDO؟
هر دو خوب اند؛ اما PDO روی چندین پایگاه داده کار می کند. MySQLi فقط روی MySQL است. همچنین هر دو شی گرا هستند. MySQLi یک API رویه ای هم دارد. برای تغییر پایگاه داده، PDO راحت تر جابجا می شود.
راه اندازی افزونه ها
در بیشتر نصب ها MySQLi خودکار فعال است. برای جزئیات نصب، مستند را ببین:
باز کردن اتصال (Open Connection)
نمونه: MySQLi شی گرا (Object-Oriented)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$conn = new mysqli($servername, $username, $password);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>
نمونه: MySQLi رویه ای (Procedural)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$conn = mysqli_connect($servername, $username, $password);
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>
نمونه: PDO
<?php
$servername = "localhost";
$username = "username";
$password = "password";
try {
$conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
} catch (PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
نکته: در PDO باید نام پایگاه داده معتبر بدهی؛ وگرنه خطای استثنا می گیری.
بستن اتصال (Close Connection)
MySQLi شی گرا
<?php
$conn->close();
?>
MySQLi رویه ای
<?php
mysqli_close($conn);
?>
PDO
<?php
$conn = null;
?>
تمرین سریع با اتصال MySQL
- اول از معرفی MySQL مرور کن.
- یکی از سه روش بالا را انتخاب کن.
- پیام «Connected successfully» را در مرورگر ببین.
هشدار: نام کاربری و رمز را در کد عمومی نگذار. از متغیر محیطی استفاده کن.
گام بعدی
- ساخت جدول ها: ایجاد جداول MySQL.
جمع بندی سریع
- اتصال MySQL با MySQLi یا PDO ممکن است.
- PDO برای مهاجرت گزینه بهتری است.
- Always از Prepared Statement استفاده کن.
- اتصال را در پایان ببند.