مرحبا
واجهتني مشكلة عند محاولة إصلاح أحد المواقع
فبعد أن قمت بتصدير قاعدة البيانات و فيها أكثر من 500 مقالة و أعضاء و ...
كان الترميز المستخدم هو
و لذلك صارت الكتابة من الشكل
?‡?????‡?†?£?‰ ?‡???“?¦???‡?
هل هناك طريقة لإعادة المحتويات إلى الترميز windows-1256 ؟
شكرا
واجهتني مشكلة عند محاولة إصلاح أحد المواقع
فبعد أن قمت بتصدير قاعدة البيانات و فيها أكثر من 500 مقالة و أعضاء و ...
كان الترميز المستخدم هو
CHARACTER SET utf8 COLLATE utf8_swedish_ci;
و لذلك صارت الكتابة من الشكل
?‡?????‡?†?£?‰ ?‡???“?¦???‡?
هل هناك طريقة لإعادة المحتويات إلى الترميز windows-1256 ؟
شكرا
المنتديات
التعليقات
Re: تغيير ترميز قاعدة بيانات؟؟
Re: تغيير ترميز قاعدة بيانات؟؟
Re: تغيير ترميز قاعدة بيانات؟؟
mysqldump -u [your user name] -p --opt [dbname] > [filename.sql]
سيولد لك هذا الأمر ملف sql يفترض أن يكون مطابقا للمعلومات المخزنة في الجداول، وبذلك تتجنب أية أخطاء قد يرتكبها برنامج التصدير الذي تستخدمه. افتح الملف الجديد وتأكد أنه قابل للقراءة. تجد البرنامج mysqldump في مجلد البرامج التنفيذية ل Mysql، وهو عادة /usr/bin أو c:\mysql\binRe: تغيير ترميز قاعدة بيانات؟؟
Re: تغيير ترميز قاعدة بيانات؟؟
Re: تغيير ترميز قاعدة بيانات؟؟
Re: تغيير ترميز قاعدة بيانات؟؟
$dbhost="localhost"; $dbuser="salam"; $dbpass="1234"; $dbname="bbs"; $backup="bbs.sql";
و بعدها وضعت المتحولات في التعليمة التالية:$command="mysqldump -u $dbuser -p $dbpass --opt $dbname > $backup";
ثم قمت بتنفيذه:system($command);
و عند تشغيل الملف تم توليد قاعدة البيانات و لكنها كانت فارغة. ما هو السبب هل يوجد نقص فيما كتبته؟؟Re: تغيير ترميز قاعدة بيانات؟؟
Re: تغيير ترميز قاعدة بيانات؟؟
Re: تغيير ترميز قاعدة بيانات؟؟
CREATE TABLE `articles` ( `art_id` smallint(5) unsigned NOT NULL auto_increment, `art_cat` smallint(5) unsigned NOT NULL default '0', `art_subject` varchar(200) NOT NULL default '', `art_article` text NOT NULL, PRIMARY KEY (`art_id`) ) TYPE=MyISAM AUTO_INCREMENT=1 ;
نستخرج بعض المحتويات منه و نقوم بإضافتها إلى ملف مثلا:$query=mysql_query(" select art_id,art_cat,art_subject,art_article limit 0,10 "); ///////////////////////////// $i=0; $fileopen=fopen("filey.sql","a"); while ($i<10){ $art_id=mysql_result($query,$i,"art_id"); $art_cat=mysql_result($query,$i,"art_cat"); $art_subject=mysql_result($query,$i,"art_subject"); $art_article=mysql_result($query,$i,"art_article"); $str ="INSERT INTO `articles` VALUES ("; $str.=$art_id.","; $str.=$art_cat.",'"; $str.=$art_subject."','"; $str.=$art_article; $str.=");"; $filewrite=fwrite($fileopen,$str."\n"); $i++; } fclose($fileopen);
و طبعا كل هذا بعد الاتصال الناجح بقاعدة البيانات. يمكن الطريقة غبية بس كنت مضطر و مشي حالي تم التحرير لوضع & l t ; بدلا من إشارة الأصغر [ تم تحريره بواسطة salam on 26/6/2006 ]إضافة تعليق جديد