CRUD PHP with MySQL
CRUD PHP with MySQL
قائمة المصطلحات والتعريفات
المقدمة:
تُعتبر إدارة البيانات أحد الجوانب الأساسية والضرورية لإنشاء تطبيقات ويب فعالة وموثوقة. تعتبر عمليات
CRUD الأساسيات التي تعتمد عليها معظم التطبيقات لإدارة البيانات المخزنة في قواعد البيانات. في هذا السياق، تقدم لغة البرمجة PHP و نظام إدارة قواعد البيانات MySQL أدوات قوية وسهلة الاستخدام لتنفيذ هذه العمليات.
تهدف هذه المقالة إلى شرح كيفية تنفيذ تعليمات CRUD باستخدام PHP مع MySQL.
إنشاء اتصال بقاعدة بيانات MySQL:
إنشاء اتصال بقاعدة بيانات MySQL من خلال PHP، يجب أولاً إعداد الاتصال بين قاعدة البيانات وكود PHP الخاص بك. الكود التالي يقوم بإنشاء هذا الاتصال، مما يسمح لك بتخزين البيانات من صفحة الويب في قاعدة البيانات.
فيما يلي كيفية كتابة الكود اللازم، والذي يمكن تسميته بملف config.php:
تعريف متغيرات الاتصال:
$servername: يُمثل اسم الخادم الذي تستضيف عليه قاعدة البيانات. عادةً ما يكون "localhost" إذا كانت قاعدة البيانات تعمل على نفس الخادم الذي يعمل عليه كود PHP.
$username: اسم المستخدم الذي سيستخدمه PHP للاتصال بقاعدة البيانات.
$password: كلمة المرور المرتبطة باسم المستخدم. في العديد من بيئات التطوير المحلية، قد تكون هذه القيمة فارغة.
$dbname: اسم قاعدة البيانات التي ترغب في الاتصال بها.
إنشاء كائن الاتصال:
new mysqli($servername, $username, $password, $dbname): ينشئ كائنًا جديدًا للاتصال بقاعدة البيانات باستخدام معلومات الاتصال المقدمة.
التحقق من الاتصال:
if ($conn->connect_error): يتحقق مما إذا كان هناك خطأ في الاتصال بقاعدة البيانات.
die("فشل الاتصال: " . $conn->connect_error): إذا كان هناك خطأ، يتم إيقاف تشغيل السكربت وعرض رسالة توضح سبب الفشل.
إنشاء سجلات جديدة في قاعدة البيانات:
لإنشاء سجلات جديدة في قاعدة البيانات باستخدام PHP، تحتاج إلى إعداد نموذج HTML لجمع البيانات من المستخدم وكتابة كود PHP لمعالجة هذه البيانات وإدخالها في قاعدة البيانات. فيما يلي توضيح لكيفية إعداد هذا الإجراء باستخدام ملف يسمى create.php.
تضمين ملف الاتصال بقاعدة البيانات:
include "config.php";:
يقوم بإدراج ملف الاتصال بقاعدة البيانات الذي أنشأته في الخطوة السابقة.
التحقق من إرسال النموذج:
if (isset($_POST['submit'])):
يتحقق مما إذا كان النموذج قد تم إرساله عبر الضغط على زر "إرسال".
الحصول على البيانات من النموذج:
يتم استخدام $_POST للحصول على البيانات المدخلة من النموذج وإدراجها في متغيرات PHP.
تجاوز الأحرف الخاصة:
استخدم real_escape_string من كائن $conn لتجنب مشاكل الأمان مثل هجمات SQL Injection. هذا يضمن أن البيانات المدخلة يتم التعامل معها بشكل آمن عند إدخالها في الاستعلام.
إنشاء استعلام SQL:
INSERT INTO users (...) VALUES (...):
يقوم بإنشاء جملة SQL لإدخال البيانات في جدول users.
تنفيذ الاستعلام والتحقق من النجاح:
if ($result === TRUE):
يتحقق مما إذا كانت عملية الإدخال ناجحة. إذا كانت كذلك، يتم عرض رسالة نجاح. إذا لم تكن ناجحة، يتم عرض رسالة خطأ مع تفاصيل الاستعلام.
إغلاق الاتصال بقاعدة البيانات:
$conn->close();:
يغلق الاتصال بقاعدة البيانات بعد إتمام العملية.
نموذج HTML لجمع البيانات:
يحتوي النموذج على حقول لإدخال الاسم الأول، الاسم الأخير، البريد الإلكتروني، كلمة المرور، والجنس. يتم إرسال البيانات إلى نفس الملف create.php باستخدام طريقة POST.
ملاحظة: الفورم وكود php في نفس الصفحة لذلك لا يوجد داعي لتحديد الaction.
عرض أو قراءة البيانات:
العملية الثانية، تمامًا كما يوحي الاسم، «اقرأ» تستخدم لعرض أو قراءة البيانات المتوفرة بالفعل في قاعدة البيانات.
لإجراء العملية، تحتاج إلى إنشاء صفحة تعرض السجلات من جدول «المستخدمين».
تضمين ملف الاتصال بقاعدة البيانات:
include "config.php";:
يقوم بإدراج ملف الاتصال بقاعدة البيانات.
استرجاع السجلات:
SELECT * FROM users:
استعلام SQL لجلب جميع السجلات من جدول users.
$result = $conn->query($sql);:
تنفيذ الاستعلام وتخزين النتيجة في متغير $result.
عرض السجلات في جدول HTML:
عرض البيانات: إذا كانت هناك سجلات في نتيجة الاستعلام ($result->num_rows > 0)، نقوم بعرض كل سجل في صف (<tr>) من الجدول باستخدام حلقة while.
روابط التعديل والحذف: أضفنا رابط لتعديل (update.php?id=...) وحذف (delete.php?id=...) كل سجل.
إدارة حالة عدم وجود سجلات:
إذا لم توجد سجلات، يتم عرض صف واحد في الجدول يحتوي على رسالة "No records found".
تحديث السجلات:
عملية التحديث (update) هي العملية المسؤولة عن تعديل أو تغيير البيانات الموجودة بالفعل في قاعدة البيانات. لإنشاء صفحة لتحديث السجلات، نحتاج إلى إعداد صفحة تعرض نموذجًا يسمح للمستخدم بتعديل البيانات، ثم تحديث قاعدة البيانات بناءً على هذه التعديلات.
فيما يلي كيفية إعداد صفحة update.php التي تقوم بتحديث السجلات في قاعدة البيانات:
كود PHP وHTML في ملف update.php
ملاحظة: الفورم وكود php في نفس الصفحة لذلك لا يوجد داعي لتحديد الaction.
تضمين ملف الاتصال بقاعدة البيانات:
include "config.php";:
يقوم بإدراج ملف الاتصال بقاعدة البيانات.
التحديث بناءً على البيانات المدخلة:
if (isset($_POST['update'])):
يتحقق مما إذا كان النموذج قد تم إرساله لتحديث السجل.
يتم الحصول على البيانات المدخلة من النموذج، ثم يتم إعداد جملة SQL لتحديث السجل في جدول users.
تنفيذ الاستعلام والتحقق من النجاح:
$result = $conn->query($sql);:
تنفيذ الاستعلام وتخزين النتيجة في متغير $result.
يتم عرض رسالة نجاح إذا كانت عملية التحديث ناجحة، أو رسالة خطأ إذا لم تكن كذلك.
عرض نموذج التحديث:
استرجاع البيانات: إذا كان هناك معرف مستخدم في عنوان
URL ($_GET['id'])
، يتم استرجاع البيانات بناءً على هذا المعرف لملء النموذج.
عرض البيانات في النموذج: يتم استخدام البيانات المسترجعة لملء حقول النموذج بحيث يمكن للمستخدم تعديلها.
إدخال البيانات في النموذج: يتم استخدام htmlspecialchars لتجنب مشاكل الأمان مثل XSS (البرمجة عبر المواقع).
إعادة التوجيه إذا لم يتم العثور على السجل:
إذا لم يتم العثور على سجل مطابق للمعرف في قاعدة البيانات، يتم إعادة توجيه المستخدم إلى صفحة عرض السجلات (view.php).
حذف السجلات:
العملية الأخيرة من عمليات CRUD هي عملية الحذف (delete). كما يوحي الاسم، تُستخدم هذه العملية لحذف سجل موجود من قاعدة البيانات.
للقيام بهذه العملية، تحتاج إلى إنشاء صفحة تُتيح لك اختيار السجل الذي ترغب في حذفه من قاعدة البيانات.
كود PHP في ملف delete.php:
تضمين ملف الاتصال بقاعدة البيانات:
include "config.php";:
يقوم بإدراج ملف الاتصال بقاعدة البيانات الذي يحتوي على تفاصيل الاتصال مثل اسم الخادم واسم المستخدم وكلمة المرور واسم قاعدة البيانات.
التحقق من وجود معرف في عنوان URL:
if (isset($_GET['id'])):
يتحقق مما إذا كان هناك معرف مستخدم في عنوان URL. يُفترض أن يكون هذا المعرف هو معرف السجل الذي نريد حذفه.
إعداد جملة SQL لحذف السجل:
DELETE FROM usersWHEREid='$user_id':
جملة SQL لحذف السجل من جدول users بناءً على المعرف (id).
تنفيذ الاستعلام والتحقق من النجاح:
$result = $conn->query($sql);:
تنفيذ جملة SQL وتخزين النتيجة في متغير $result.
يتم عرض رسالة نجاح إذا كانت عملية الحذف ناجحة، أو رسالة خطأ إذا لم تكن كذلك.
إغلاق الاتصال بقاعدة البيانات:
$conn->close();:
إغلاق الاتصال بقاعدة البيانات بعد الانتهاء من عملية الحذف.
ملاحظة:
الحماية من الأخطاء: تأكد من التحقق من الأخطاء دائمًا عند تنفيذ الاستعلامات. قد يكون من الجيد إضافة حماية ضد هجمات SQL Injection باستخدام prepared statements إذا كان هناك إدخال من المستخدم.
التحقق من صحة البيانات: تأكد من التحقق من صحة المعرف (ID) قبل استخدامه في استعلام الحذف لضمان أن المعرف هو قيمة صحيحة وغير ضارة.
ليست هناك تعليقات: