40- MySQL شرح MySQL Insert Multiple Records – PHP

كيفية إدراج سجلات متعددة في MySQL باستخدام PHP

عند التعامل مع قواعد البيانات، غالباً ما يتعين علينا إدراج أكثر من سجل في وقت واحد. يمكن أن يكون إدراج كل سجل على حدة عملية بطيئة وغير فعالة، خاصة عندما يتعلق الأمر بكمية كبيرة من البيانات. لحسن الحظ، توفر MySQL وPHP طريقة لإدراج سجلات متعددة بكفاءة في عملية واحدة.

إعداد قاعدة البيانات

قبل البدء، دعنا نفترض أن لدينا جدولاً بسيطًا في قاعدة البيانات يسمى `employees` مع الأعمدة التالية:
– `id` – رقم تعريفي فريد لكل موظف (Primary Key).
– `first_name` – اسم الموظف الأول.
– `last_name` – اسم العائلة.
– `email` – البريد الإلكتروني.

يمكن إنشاء الجدول باستخدام الاستعلام التالي:


CREATE TABLE employees (
    id INT AUTO_INCREMENT PRIMARY KEY,
    first_name VARCHAR(50),
    last_name VARCHAR(50),
    email VARCHAR(100)
);

إدراج سجلات متعددة باستخدام PHP

الآن سنشرح كيفية إدراج سجلات متعددة باستخدام PHP. سنستخدم دالة `mysqli` للاتصال بقاعدة البيانات.

# الاتصال بقاعدة البيانات

أولاً، نحتاج إلى الاتصال بقاعدة البيانات. تأكد من تعديل بيانات الاتصال لتناسب إعداداتك:

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

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

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

# إدراج سجلات متعددة

الآن، دعنا نقوم بإدراج عدة سجلات في جدول `employees` باستخدام استعلام SQL واحد.

<?php
// البيانات المراد إدراجها
$employees = [
    ['John', 'Doe', 'john.doe@example.com'],
    ['Jane', 'Smith', 'jane.smith@example.com'],
    ['Mike', 'Johnson', 'mike.johnson@example.com']
];

$values = [];

foreach ($employees as $employee) {
    $first_name = $employee[0];
    $last_name = $employee[1];
    $email = $employee[2];

    // التأكد من سلامة البيانات لمنع هجمات SQL Injection
    $first_name = $conn->real_escape_string($first_name);
    $last_name = $conn->real_escape_string($last_name);
    $email = $conn->real_escape_string($email);

    $values[] = "('$first_name', '$last_name', '$email')";
}

$sql = "INSERT INTO employees (first_name, last_name, email) VALUES " . implode(", ", $values);

if ($conn->query($sql) === TRUE) {
    echo "تم إدراج السجلات بنجاح";
} else {
    echo "خطأ: " . $sql . "<br>" . $conn->error;
}

$conn->close();
?>

شرح الكود

1. **الاتصال بقاعدة البيانات**: نبدأ بإنشاء اتصال بقاعدة البيانات باستخدام `mysqli`.

2. **تجهيز البيانات**: قمنا بتجهيز مصفوفة [شركة برمجة مصرية] تحتوي على البيانات التي نريد إدراجها. كل عنصر في المصفوفة يمثل موظفًا جديدًا مع تفاصيله.

3. **تأمين البيانات**: استخدمنا دالة `real_escape_string` لتأمين البيانات قبل إدراجها في قاعدة البيانات، مما يحمي من هجمات SQL Injection.

4. **إنشاء استعلام الإدراج**: قمنا ببناء استعلام إدراج متعدد باستخدام `implode` لدمج القيم في استعلام SQL واحد.

5. **تنفيذ الاستعلام**: استخدمنا دالة `query` لتنفيذ [شركة برمجة مصرية] استعلام الإدراج والتحقق من نجاح العملية.

الخلاصة

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