PDA

View Full Version : گفتگو: اشکال در استفاده از PDO برای کلمات فارسی



sina365
دوشنبه 29 شهریور 1395, 15:29 عصر
سلام به برنامه نویسان و همکارای عزیز.
در لوکال هاست، با استفاده از PDO، یک سری کلمات فارسی رو به دیتابیس وارد میکردم، و درست هم کار می کرد، اما وقتی اسکریپت رو آپلود کردم، توی دیتابیس فقط فیلد خالی اضافه می شه و کلمات وارد نمیشه.

من هر کاری که می تونستم انجام دادم تا PDO از utf-8 پشتیبانی کنه، اما نشد که نشد.

این هم کد من برای اتصال به دیتابیس:
:


try {
$connection = new PDO("mysql:host=LOCALHOST;dbname=MYDB;charset=utf8", "USERNAME", "PASSWORD", array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
, PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8 COLLATE 'utf8_persian_ci' "
));

$connection->exec("SET NAMES UTF8;");

} catch (PDOException $e) {
die('خطا در اتصال به دیتا بیس');
}



همون طور که می بینید، هم charset=utf8 قرار دادم،
هم MYSQL_ATTR_INIT_COMMAND ست کردم،
و هم SET NAMES UTF8 اجرا کردم.
خود فایل PHP رو هم utf-8 ذخیره کردم،
تمام جداول توی دیتابیس رو هم utf8_persian_ci قرار دادم.

ورژن PHP هاست رو هم 7 قرار دادم و هم 5 و باز امتحان کردم، نشد که نشد.:گریه:
لطفا تجربیاتتون رو با من به اشتراک بگذارید.

مهرداد سیف زاده
دوشنبه 29 شهریور 1395, 15:51 عصر
اگر از زبان فارسی باشه یعنی روی utf8 مشکل داشته باشه insert میشه ولی کاراکتر ? میزنه. ولی شما میگید که null ذخیره میشه. با کاراکترهای انگلیسی تست کنید و همچنین برای تست بیشتر میتونید query رو مستقیما توسط phpmyadmin اجرا بگیرید ببینید اصلا query درست هست