الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

[ تمت الإجابة ]مشكلة في تنفيذ استعلام مستورد من ملف خارجي

بدأه aymanmm في 28 أبريل 2012 · 1 رد · 258 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم جميعاً

بحث كثيراً ولم اجد حلاً لهذه المشكلة

الموضوع انني احاول قراءة استعلام يقوم بادراج او تعديل سجل في قاعدة البيانات

هذا الاستعلام موجود في ملف نصي تقوم الصفحة بقرائته ثم استقبال محتوياته في متغير اقوم بتنفيذه كاستعلام


move_uploaded_file($_FILES["file"]["tmp_name"],
"import/" . $_FILES["file"]["name"]);
$_SE = $_FILES["file"]["name"];
$sql=file_get_contents("import/".$_SE);
echo $sql;
mysql_query($sql) or die(mysql_error());

الاستعلام المراد تنفيذه بسيط :

INSERT INTO subject VALUES (1,1,'Math');

المشكلة هي كالتالي

عند تنفيذ الكود وكان نوع الملف المرفوع ANSI فيتم تنفيذ الكود بنجاح و تكمن المشكلة في الحقول العربية التي تتحول الى علامات استفهام في قاعدة البيانات

عند تنفيذ الكود وكان نوع الملف المرفوع UTF-8 الذي يحافظ على اللغة العربية لا يتم تنفيذ الاستعلام سواء كان الحقل عربي او انجليزي وتظهر الرسالة

INSERT INTO subject VALUES (1,1,'Math');You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' INSERT INTO subject VALUES (1,1,'Math')' at line 1

طبعا لو حاولت طبع نفس الاستعلام على الشاشة و اخذتها نسخ لصق الى phpMyadmin ونفذته في محرر الاستعلامات فإنه ينفذ مباشرة

جربت حفظ صفحات البي اتش بي بتكويد مختلف و جربت حفظ الملف الذي يحتوي الاستعلام بتكويد مختلف إلا أني لم أصل الى حل

هل أجد عند حضراتكم حل لهذا الموضوع ؟

دمتم بود

#2

شكرا للجميع تم حل المشكلة

اتضح أنه عند تحويل الملف من تكويد ANSI الى تكويد UTF-8 فانه يقوم باضافة ثلاثة حروف غير مرئية تقوم بتخريب الاستعلام

تم حل المشكلة بقراءة الملف ابتداءاً من الحرف الرابع

$sql=file_get_contents("import/".$_SE);
	  $sql =substr($sql,3);

تم تعديل هذه المشاركة بواسطة aymanmm في 28 أبريل 2012 في 12:41

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…