المحتوى

29‏/10‏/2011

استخدام الترميز UTF-8 في MYSQL باستخدام PHP

السلام عليكم

في المواقع التي صممتها بلغة PHP بقاعدة البيانات MYSQL , كنت أستخدم الترميز الافتراضي ولا أقوم بتعديل محتويات MYSQL من PhpMyAdmin بل كنت أكتفي بالتعديل من أوامر PHP فقط ,,,,,
ولكن دعتني الحاجة لذلك عندما حاولت تصدير محتوى أحد Tables إلى ملف Excel ولكن الترميز لا يدعم العربي ,,,,
وبذلك احتجت لتوحيد الترميز الذي أعمل عليه إلى UTF-8 , وبما أن كل مواقعي السابقة بغير هذا الترميز , فقد لخصت التعديلات التي قمت بها وأحببت مشاركتها في مدونتي , رغم ترددي عن ذلك في البداية لأنني عادة ما أدون البرامج التي أمضي فيها وقت كافي لتجربتها , ولكني سأغير أسلوبي فلعل أحد يستفيد من ذلك أو يعلق على ذلك ويبين لي طريقة أفضل فأستفيد أنا والزوار من ذلك ,,,,,

التعديلات التي قمت بها لاستخدام الترميز UTF-8 في MYSQL باستخدام PHP


أولا: بعد دالة الاتصال بقاعدة البيانات mysql_connect
$connection = mysql_connect(DB_SERVER,DB_USER,DB_PASS);
mysql_query("set character_set_server='utf8'");
mysql_query("set names 'utf8'");

ثانيا: عند انشاء قاعدة البيانات
$result=mysql_query ("CREATE DATABASE ".DB_NAME." DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci");

ثالثا: عند انشاء جدول
$query = "create table ".DB_TABLE." (".$command_name.")"." ENGINE = MyISAM CHARACTER SET utf8 COLLATE utf8_unicode_ci";

رابعا: في كل صفحة لا تنسى الترميز
meta http-equiv="Content-Type" content="text/html; charset= utf-8"
و
header( 'Content-Type: text/html; charset=UTF-8' );

أخيرا: لا تنسى تخزين كل ملف PHP بالترميز utf-8


هناك تعليقان (2):

  1. السلام عليكم
    بالنسبة لهيدر اين اضعه؟
    وهل هناك طريقه لتصدير محتوى اكسل عربي الى MYSQL

    ردحذف
  2. وعليكم السلام
    يتم وضع الهيدر في رأس الصفحة داخل التاغ: HEAD

    ردحذف