ايران ويج

نسخه‌ی کامل: ذخیره و بازیابی صحیح در mysql
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
برای ذخیره صحیح پارسی در mysql معمولا collation جدول یا اون فیلدی که قراره پارسی درش ذخیره بشه رو روی utf-8 قرار میگیره مثل utf8_persian_ci یا utf8_default_collation قرار میدهیم
با این کار متون پارسی به درستی در بانک ذخیره میشه و در واکشی هم با متای زیر
کد:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
به درستی در صفحات نمایش داده میشه اما اگه وارد phpmyadmin بشین و یه نگاهی به فیلد های جدولتون بندازین میبینین که متون پارسی به صورت
علمی و پژوهشی
یا به قول معروف اجق وجق ذخیره شدن و به صورت مستقیم قابل خواندن نیستن برای رفع این مشکل باید 3 آپشن زیر در حالت utf-8 fhan
کد:
SET character_set_client = x;
SET character_set_results = x;
SET character_set_connection = x;
در هنگام ساخت کانکشن در PDO میتوانید از اپشن PDO::MYSQL_ATTR_INIT_COMMAND استفاده کنید که میتوانید یکی از مقادیر
کد:
SET NAMES 'utf8'
یا
SET CHARACTER SET 'utf8'
را داشته باشد تفاوت این 2 مقدار در این میباشد که
SET NAMES مقادری را به صورت
SET character_set_client = utf-8;
SET character_set_results = utf-8;
SET character_set_connection = utf-8;
و SET CHARACTER SET 'utf8' مقادیر را به صورت
SET character_set_client = x;
SET character_set_results = x;
SET collation_connection = @@collation_database;
مقدار دهی میکند که منظور از @@collation_database همان کلیشن تعریف شده برای فیلد یا جدول در دیتابیس میباشد

کد:
http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html