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

كيف احول قاعدة البيانات لملفات نصيه

مغلق
بدأه طارق إبراهيم في 7 سبتمبر 2004 · 7 رد · 749 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

معذره يا شباب لدى مشكله صعبه نوعاً ما قام بعض اصدقائى بحجز مساحه من احد الشركات لبناء موقعهم و لكن المضيف لا يسمح لهم بالاتصال بقاعدة البيانات لعمل نسخ احتياطى بل يسمح فقط بسحب الملفات النصيه فهل يمكن تحويل قاعدة البيانات 200 ميجا من نوع mysql إلى ملفات نصيه اتمنى ان اجد من يساعدنى فى هذه المشكله

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#3

لفد قمت بكتابة php script يقوم بتحويل جميع المعلومات الموجودة في جدول معين الى ملف sql بجملة insert و ساقوم بطرحه هنا للاستعمال عندما اصلح بعض الاعطال به.

و السلام عليكم

راكان الحنيطي

Be Open Source

opensource-550x4752.gif

#5

نعم لم يمكن ان يستخدم PHPMyAdmin لان حجم قاعدة البيانات كبيرا تقريبا 200 ميجا فاما بصير Session Time Out او عند بداية التحميل ينقطع بعد حوالي 3 ميجا لانه لا ينشيء ملف اصلا ولكنه يرسلها على هيئة صفحة ويتم تغذيتها اول باول عن طريق HTTP

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#6

ممم .. برنامج mysql front قد يتعامل مع المشكلة لأنك تحدد السيشن ويمتاز بواجهة مايكروسوفت اكسس ولكن هو جديد على وسأحاول اعادة تثبيته واختبره يمكن ينفع ان شاء الله، وحل السكريبت كما قال الاخ راكان هو حل ممتاز وافكر فى حل مثله ولكن لرفع بيانات على قاعدة mysql :)

#7

اخى طارق فعلا Mysql front ممتاز حيث اعطيته سيشن 37 ساعة (كبيرة شويه؟) وحولت قاعدة بيانات منتدى الى ملفات sql نصية :) ياريت تستخدمه وتقولى رأيك

#8

هذا هو ال script

<?

	//edit these information because they are important for the backup system
	$MySqlServer = "localhost";
	$Username = "username";
	$Password = "password";
	$dbName = "databasename";
	$TableName = "tablename"; //name of table to be copied
	//connect to mysql
	$con = mysql_connect($MySqlServer,$Username,$Password);
	$db = mysql_select_db($dbName,$con);
	//query database
	$result = mysql_query("SELECT * FROM ".$TableName." WHERE 1");
	$newfile = true;
	$fileno = 1;
	$counter = 1;
	//following code will get the fieldname and fieldvalue and save them.
	$mycols = "";
	$myvals = "";
	while($row=mysql_fetch_array($result, MYSQL_ASSOC)) {
  if ($newfile == true){
 	 //open a new file for writing
 	 $newfile = false;
 	 $filename = "File".$fileno.".sql";
 	 $file = fopen($filename,"w") or die("cannot open file");
  } else {
 	 $file = fopen($filename, "a") or die("cannot open file");
  }
  $sqlstatement = "INSERT INTO ".$TableName."(";
        while(list($key,$val) = each($row) ) {
 	 if ($mycols == ""){
    $mycols = $key;
 	 } else {
    $mycols = $mycols.",".$key;
 	 }
 	 if ($myvals == ""){
    $myvals = "'".$val."'";
 	 } else {
    $myvals = $myvals.","."'".$val."'";
 	 }
        }
  $mycols = $mycols.") VALUES(";
  $myvals = $myvals.");";
  $sqlstatement = $sqlstatement.$mycols.$myvals."\n";
  if ($counter == 200)
  {
 	 fwrite($file, $sqlstatement);
 	 fclose($file);
 	 $sqlstatement = "";
 	 $mycols = "";
 	 $myvals = "";
 	 $newfile = true;
 	 $counter = 1;
 	 $fileno = $fileno + 1;
 	 echo "New file opened\n\n";
 	 echo "File number = ".$fileno."\n\n";
  }
  else
  {
 	 fwrite($file, $sqlstatement);
 	 fclose($file);
 	 $sqlstatement = "";
 	 $mycols = "";
 	 $myvals = "";
 	 $counter = $counter + 1;
  }
	}
	mysql_close($con);
	echo "backup operation completed!!\n\n";

يجب ان تعدل حقوح المجلد في حسابك على المضيف الى 777 و هو ما يسموه ب chmod او folder attributes و هذا سيسمح للسكربت بانشاء ملفات جديدة و الكتابة اليها.

بالنسبة الى البرنامج الذي ذكره الاخ انور فقد قال لي احد الاخوة بانه يتطلب دخول مباشر الى قاعدة البيانات على اسيرفر و المضيف لا يسمج بهذا ففكرة السكربت هنا جائزة :)

سلام

راكان الحنيطي

Be Open Source

opensource-550x4752.gif

هذا الموضوع مغلق.

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