السلام عليكم
لدي ملف sql على السيرفر و اريد تنفيده على قاعدة البيانات
و هده هي محاولتي
و النتيجة لا شيئكود PHP:
$sql = file_get_contents("sql.txt");
mysql_query($sql);
أين الخطأ؟؟
السلام عليكم
لدي ملف sql على السيرفر و اريد تنفيده على قاعدة البيانات
و هده هي محاولتي
و النتيجة لا شيئكود PHP:
$sql = file_get_contents("sql.txt");
mysql_query($sql);
أين الخطأ؟؟
__________________
مركز الملفات المشتركة - الإصدار التجريبي الرابع MMM_uploader_v1b4
لماذا لا تقم بالمحاولة عن طريق لوحة التحكم الخاصة بموقعك
اذهب إلى phpmyadmin و اعمل قاعد بيانات جديدة ثم اختر import from file
__________________
و أخيراً ............
الآن بإمكانك الحصول على حساب rapidshare مجانا لمدة شهر كامل ............
فقط يجب عليك اتباع التعليمات المطلوبة منك في هذا الموقع.......
اضغط هنا للتسجيل مباشرة
مشكور على الرد
لكن أحب معرفة الطريقة عن طريق php لا phpmyadmin
__________________
مركز الملفات المشتركة - الإصدار التجريبي الرابع MMM_uploader_v1b4
إذا ظهر لك أي خطأ ارفقه ومالك الا طيبة الخاطر يالغلا ,,كود PHP:
$open = fopen ("sql.txt",r);
$sqlquery = mysql_query ("$open") or die(mysql_error());
$close = fclose ($open);
السلام عليكم
اخوي هذا الكود خاطئ حيث يجب ان تمر على كل الاسطر امر امركود:$sql = file_get_contents("sql.txt"); mysql_query($sql);
و ليس كل الاوامر مره واحده
افضل شي انك تمرره على دالة foreach او while او for
مثال
كود:$open = fopen("sql.txt",'r'); // هنا نفتح الملف للقراءة $fdata = fread($open,filesize("sql.txt")); // هنا نقرء جميع محتويات الملف و نحفظها في متغير $array = explode("\n",$fdata); // هنا نقوم بوضع كل المحتوى في مصفوفه سطر سطر fclose($open); // نغلق الملف لعدم حاجتنا اليه بعد الان // الحين خلينا نمرر المصوفه على لووب و نعمل لها استعلام foreach($array as $line) { @mysql_query($line); // امر كويري عادي }
__________________
أهلا و سهلا بكم في :-
موقع دار الأوائل
تفضل معنا خدمات الاستضافة
موقع العبقري لخدمات الاستضافة
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 'Resource id #4' at line 1
__________________
مركز الملفات المشتركة - الإصدار التجريبي الرابع MMM_uploader_v1b4
أخي ضع ملف التعليمات لأن به خطأ.
الطريقة صحيحة ..كود PHP:
mysql_query(file_get_contents('query.sql'));
طبعاً لا بد من الإتصال بالقاعدة وتحديد القاعدة قبل تنفيذ الأمر ، و أيضاً تأكد من صحة الـ query في الملف ، اذا كانت كل هذه الأمور منفذه ولم يحصل شيء قم بالاستعلام التالي ليظهر لك الخطأ
ضع الخطأ هنا ان وجد ..كود PHP:
mysql_query(file_get_contents('query.sql')) or die(mysql_error());
طريقة الأخ عبقري العرب صحيحة إذا كان كل أمر sql في سطر
لكن ماذا لو كان أمر إنشاء جدول مثلا كل حقل في سطر النتيجة أنه أكيد خطأ
ينبغي استخدام متغير تجمع فيه السطور ومن ثم التأكد من أن آخر حرف عبارة عن علامة ; ومن ثم ينفذ السطر كامل
أتمنى توكن وصلت المعلومة
طيب ممكن بسهوله تغير البارميتر من سطر جديد الى الشكل المتعارف عليه ;لكن ماذا لو كان أمر إنشاء جدول مثلا كل حقل في سطر النتيجة أنه أكيد خطأ
ينبغي استخدام متغير تجمع فيه السطور ومن ثم التأكد من أن آخر حرف عبارة عن علامة ; ومن ثم ينفذ السطر كامل
أتمنى توكن وصلت المعلومة
في هذا السطر
غير \n الى ;
$array = explode(";",$fdata);
__________________
أهلا و سهلا بكم في :-
موقع دار الأوائل
تفضل معنا خدمات الاستضافة
موقع العبقري لخدمات الاستضافة
لا أعتقد ذلك ، فالدالة mysql_query يمكنها تنفيذ أكثر من إستعلام ما دام منتهيا بـ ; ، سأقوم ببعض التجارب ولي عودة إن شاء الله .
لقد كنت مخطئاً ! لقد توقعت أن الدالة mysql_query() يمكنها أن تتعامل مع أكثر من إستعلام ما دام منتهياً بـ ; ، أعتقد أن الحل الأمثل سيكون كالآتي
قمنا بحذف آخر عنصر من المصفوفة $querys لأنه فارغ .كود PHP:
$querys = file_get_contents('query.sql');
$querys = explode(';', $querys);
unset($querys[count($querys)-1]);
foreach ($querys as $query) {
$result = mysql_query($query);
if (!$result) {
echo mysql_error();
}
}
بالنسبة للطريقة
فهي صحيحة إذا كان هناك إستعلام واحد في الملف ، أما إن كان هناك أكثر من إستعلام فنستخدم الطريقة التي بالأعلى .كود PHP:
mysql_query(file_get_contents('query.sql'));
التعديل الأخير تم بواسطة dev11 ; 20-05-2008 الساعة 07:39 PM