PDA

View Full Version : سوال: مشکل فارسی نویسی در دیتابیس



esteftaats1368
چهارشنبه 11 اردیبهشت 1392, 19:14 عصر
با سلام من یه مشکل دارم:

یه اطلاعات به زبان فارسی رو باید insert کنم توی دیتابیس ولی وقتی echo می کنمش درست چاپ میشه.

اما وقتی توی دیتابیس insert می کنمش بصورت

عصر امروز در مراسمی Ú©Ù‡ با هدف افتتØ


ذخیره میشه.

خودم حدس می زنم از

collation
باشه.

نمی دونم اساتید بهتر می دونن.

saeidpsl
چهارشنبه 11 اردیبهشت 1392, 19:23 عصر
باید TABLE رو اینجوری

CREATE TABLE `test` (

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

بسازی

MostafaEs3
چهارشنبه 11 اردیبهشت 1392, 19:25 عصر
این سه تا کوئری رو (بعد از اتصال) اجرا کنید ::


mysql_query("SET NAMES 'utf8'", $connection);
mysql_query("SET CHARACTER SET utf8", $connection);
mysql_query("SET CHARACTER_SET_CONNECTION=utf8", $connection);

و همونطور که آقا سعید گفتن و خودتون بهش اشاره کردین ، نیاز هست Collation رو بر روی utf8_general_ci یا utf8_bin قرار بدید (معمولا بیشتر از utf8_general_ci استفاده میشه. ولی شما میتونید از utf8_bin هم استفاده کنید که بصورت باینری هست) - این دوتا Collation توی phpmyadmin قابل تنظیم هستش
--------------------------------
موفق باشید

esteftaats1368
چهارشنبه 11 اردیبهشت 1392, 19:31 عصر
باید TABLE رو اینجوری

CREATE TABLE `test` (

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

بسازی
دوست عزیز سیستم وردپرسه. با این روش نمی شد انجام بدم چون دیتا پاک میشه.

این سه تا کوئری رو (بعد از اتصال) اجرا کنید ::


mysql_query("SET NAMES 'utf8'", $connection);
mysql_query("SET CHARACTER SET utf8", $connection);
mysql_query("SET CHARACTER_SET_CONNECTION=utf8", $connection);

--------------------------------
موفق باشید
درست شد. خیلی ممنون

diba.kheirkhah
دوشنبه 13 خرداد 1392, 21:44 عصر
من این کد رو گذاشتم اما بازم اطلاعات فارسی رو به شکل ؟؟؟؟؟؟؟؟؟؟ داخل بانک میزاره!



$con=mysqli_connect("localhost","root","");
mysqli_query($con, "SET NAMES 'utf8'");
mysqli_query($con,"SET CHARACTER SET utf8");
mysqli_query($con,"SET CHARACTER_SET_CONNECTION=utf8");

esteftaats1368
دوشنبه 13 خرداد 1392, 22:41 عصر
من این کد رو گذاشتم اما بازم اطلاعات فارسی رو به شکل ؟؟؟؟؟؟؟؟؟؟ داخل بانک میزاره!



$con=mysqli_connect("localhost","root","");
mysqli_query($con, "SET NAMES 'utf8'");
mysqli_query($con,"SET CHARACTER SET utf8");
mysqli_query($con,"SET CHARACTER_SET_CONNECTION=utf8");


من که مشکلی نداشتم.
کدها رو درست گذاشتید؟

qartalonline
دوشنبه 13 خرداد 1392, 23:37 عصر
من این کد رو گذاشتم اما بازم اطلاعات فارسی رو به شکل ؟؟؟؟؟؟؟؟؟؟ داخل بانک میزاره!



$con=mysqli_connect("localhost","root","");
mysqli_query($con, "SET NAMES 'utf8'");
mysqli_query($con,"SET CHARACTER SET utf8");
mysqli_query($con,"SET CHARACTER_SET_CONNECTION=utf8");



ظاهرا متغییرها رو اشتباهی میفرستید. قسمت SET CHARACTER باید اول باشه.

diba.kheirkhah
سه شنبه 14 خرداد 1392, 02:50 صبح
من که مشکلی نداشتم.
کدها رو درست گذاشتید؟

دقیقا به همین شکلی که اینجا گذاشتم نوشتمشون

diba.kheirkhah
سه شنبه 14 خرداد 1392, 02:52 صبح
ظاهرا متغییرها رو اشتباهی میفرستید. قسمت SET CHARACTER باید اول باشه.

فرمایش شما درسته

برعکس بود

اما ارور میداد گوگل کردم دیدم باید جاشون رو عوض کنم

وقتی عوض کردم ارور ها رفت

diba.kheirkhah
جمعه 17 خرداد 1392, 21:52 عصر
کسی جواب سوالمو نمیدونه؟

qartalonline
جمعه 17 خرداد 1392, 21:57 عصر
چه سوالی ؟

diba.kheirkhah
شنبه 18 خرداد 1392, 22:38 عصر
پست شماره 5


من این کد رو گذاشتم اما بازم اطلاعات فارسی رو به شکل ؟؟؟؟؟؟؟؟؟؟ داخل بانک میزاره!



$con=mysqli_connect("localhost","root","");
mysqli_query($con, "SET NAMES 'utf8'");
mysqli_query($con,"SET CHARACTER SET utf8");
mysqli_query($con,"SET CHARACTER_SET_CONNECTION=utf8");

MRmoon
یک شنبه 19 خرداد 1392, 10:11 صبح
پست شماره 5

بهتره از كلاس mysqli استفاده كنيد راحت تره اگه از PDO هم استفاده كرديد خيلي بهتر تر.:قهقهه:

$con=mysqli_connect("localhost","root","");mysqli_query($con, "SET NAMES 'utf-8'");mysqli_query($con,"SET CHARACTER SET utf-8");mysqli_query($con,"SET CHARACTER_SET_CONNECTION=utf-8");
اينجوري كن ببين درست ميشه.

nemo php
یک شنبه 19 خرداد 1392, 16:15 عصر
کسی جواب سوالمو نمیدونه؟

توی mysql ،کالکشن رو روی persian_ci utf8 تنظیم کن