35- MySQL تعريف وشرح الاتصال بقاعدة البيانات في PHP

ما هو PHP MySQL Database؟


تخيل أنك تبني مطعماً إلكترونياً. عندك:

PHP: هو النادل الذكي اللي بياخد الطلبات من الزبائن (المستخدمين).

MySQL: هو المطبخ (قاعدة البيانات) اللي بيحتوي على كل المكونات (البيانات) مثل قائمة الطعام، بيانات الزبائن، الطلبات، وغيرها.

PHP وMySQL مع بعض بيشكلوا نظام كامل للتعامل مع البيانات على الويب.

💡 كيف بيشتغلوا سوا؟ خطوة بخطوة:
العميل يطلب: المستخدم يضغط على زر “عرض المنتجات”.

PHP يتحرك: الكود المكتوب بـ PHP يستقبل هذا الطلب، ويفهم [شركة برمجة مصرية] أنك عايز منتجات.

اتصال بـ MySQL: PHP بيرسل استعلام (مثل سؤال) لـ MySQL يقول له: “هات لي المنتجات كلها من الجدول”.

MySQL يرد: قاعدة البيانات ترجع النتائج على شكل بيانات.

PHP يعالج النتيجة: يعرضها بشكل مرتب في صفحة HTML عشان المستخدم يشوفها.

## الاتصال بقاعدة بيانات MySQL باستخدام PHP

يعتبر الاتصال بقاعدة بيانات MySQL من العمليات الأساسية عند تطوير تطبيقات الويب باستخدام لغة PHP. توفر PHP واجهات [شركة برمجة مصرية] مختلفة للتواصل مع قواعد البيانات، وسنركز هنا على استخدام امتداد MySQLi وPDO، وهما الطريقتان الأكثر شيوعًا وأمانًا.

### استخدام MySQLi

MySQLi هو اختصار لـ “MySQL Improved”، وهو امتداد محسّن للتعامل مع قواعد بيانات MySQL. يوفر MySQLi واجهتين: الإجرائية والشيئية (Object-Oriented).

#### الطريقة الإجرائية

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database_name";

// إنشاء اتصال
$conn = mysqli_connect($servername, $username, $password, $dbname);

// فحص الاتصال
if (!$conn) {
    die("فشل الاتصال: " . mysqli_connect_error());
}

echo "تم الاتصال بنجاح";

// إغلاق الاتصال
mysqli_close($conn);
?>

#### الطريقة الشيئية

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database_name";

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

// فحص الاتصال
if ($conn->connect_error) {
    die("فشل الاتصال: " . $conn->connect_error);
}

echo "تم الاتصال بنجاح";

// إغلاق الاتصال
$conn->close();
?>

### استخدام PDO

PDO (PHP Data Objects) توفر واجهة موحدة للتعامل مع قواعد بيانات متعددة، بما في ذلك MySQL. يعد استخدام PDO خيارًا جيدًا إذا كنت تخطط لدعم قواعد بيانات متعددة في المستقبل.

<?php
$dsn = "mysql:host=localhost;dbname=database_name";
$username = "username";
$password = "password";

try {
    // إنشاء اتصال
    $conn = new PDO($dsn, $username, $password);
    
    // تهيئة PDO لاستثناءات الأخطاء
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    echo "تم الاتصال بنجاح";
} catch (PDOException $e) {
    echo "فشل الاتصال: " . $e->getMessage();
}

// إغلاق الاتصال
$conn = null;
?>

### ملاحظات هامة

1. **الأمان**: تأكد دائمًا من استخدام استعلامات محضرة (prepared statements) مع PDO أو MySQLi لحماية تطبيقك من هجمات حقن SQL.

2. **إدارة الأخطاء**: من الأفضل دائمًا استخدام إدارة استثناءات فعالة لتتبع الأخطاء وحلها.

3. **التشفير**: عند التعامل مع كلمات المرور، تأكد من تشفيرها باستخدام دوال مثل `password_hash()` في PHP لضمان أمانها.

4. **إغلاق الاتصال**: على الرغم من أن PHP تغلق الاتصالات تلقائيًا عند انتهاء السكربت، يُفضل إغلاق الاتصال يدويًا لتجنب أي مشاكل محتملة في الأداء.

باستخدام هذه الطرق، يمكنك الاتصال بقاعدة بيانات MySQL بسهولة وأمان في مشاريع PHP الخاصة بك. اختر الطريقة التي تناسب احتياجات مشروعك وتفضيلاتك البرمجية.