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

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

تم النشر بتاريخ 2025-01-16
تصفح:381

How to Troubleshoot PHP Image Uploads Failing to Insert into a MySQL Database?

كيفية تحميل الصور إلى قاعدة بيانات MySQL باستخدام كود PHP

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

وصف المشكلة

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

$image = file_get_contents ($_FILES['image']['tmp_name']);
$image_name = $_FILES['image']['name'];
if ($image_query = mysql_query ("insert into product_images values (1,'$image_name',$image )"))
{
  echo $current_id;
 //echo 'Successfull';
}
else
{
  echo mysql_error();
}

الحل

عند التحليل، تم تحديد المشكلات التالية في الكود:

  • تكوين جدول SQL: التأكد من أن العمود الموجود في جدول MySQL المخصص لتخزين الصور هو من النوع BLOB لاستيعاب البيانات الثنائية.
  • وظيفة MySQL الاستخدام: يجب أن يستخدم كود PHP الحديث وظائف PDO أو MySQLi لتفاعلات قاعدة البيانات بدلاً من وظائف mysql المهملة.
  • هيكل النموذج: نموذج HTML المقدم في مقتطف التعليمات البرمجية قديم ويجب أن يكون الالتزام بالتنسيق التالي:
  • الهروب من الصورة: عند التعامل مع بيانات الصورة ككائنات تخزين كبيرة كبيرة الحجم (BLOBs)، تأكد من الهروب منها باستخدام mysql_real_escape_string() لمنع الأخطاء النحوية.

الكود المنقح

يتضمن الكود التالي ما يلزم الإصلاحات:

$image = addlashes(file_get_contents($_FILES['image']['tmp_name'])); $image_name = addlashes($_FILES['image']['name']); $sql = "INSERT INTO `product_images` (`id`، `image`، `image_name`) VALUES ('1'، '{$image}'، '{$image_name}')"; if (!mysql_query($sql)) { // معالجة الخطأ صدى "حدث خطأ ما! :(";
$image = addslashes(file_get_contents($_FILES['image']['tmp_name']));
$image_name = addslashes($_FILES['image']['name']);
$sql = "INSERT INTO `product_images` (`id`, `image`, `image_name`) VALUES ('1', '{$image}', '{$image_name}')";
if (!mysql_query($sql)) { // Error handling
    echo "Something went wrong! :("; 
}
من خلال معالجة هذه المشكلات، سيتمكن كود PHP من تحميل الصور بنجاح إلى قاعدة بيانات MySQL. من المستحسن أيضًا مراعاة تخزين ملفات الصور على القرص بدلاً من قاعدة البيانات لأسباب تتعلق بالأداء وقابلية التوسع.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3