محمد مهدی امیری
3 سال پیش توسط محمد مهدی امیری مطرح شد
7 پاسخ

نمایش علامت سوال به جای کارکتر های فارسی در دیتابیس

سلام کارکتر فارسی رو در دیتابیس ذخیر مکنم ولی وقتی میخوام از دیتابیس دریافتش کنم ???? نمایشش میده باید چیکار کنم منون میشم راهنمایی کنید


ثبت پرسش جدید
کیهان
تخصص : PHP programmer
@keyhan 3 سال پیش آپدیت شد
2

سلام @wpuser
اگه از php استفاده می کنید و همچنین اتصالتون به دیتابیس به کمک PDO صورت میگیره باید به این صورت عمل کنید

$conn= new PDO('mysql:dbname=xnews;host=localhost;port=' . $LOCAL_DB_PORT, 
          $LOCAL_DB_USER, 
          $LOCAL_DB_PASS, 
          array(PDO::MYSQL_ATTR_INIT_COMMAND =>  "SET NAMES 'UTF8'")
      );

یا به جای استفاده در آرگومان آخر میتونید از setAttribute استفاده کنید

  $conn->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND ,  "SET NAMES 'UTF8'");

داده های قبلی رو پاک کنید و دوباره اقدام به ذخیره اطلاعات کنید
موفق باشید


نیما - ش
تخصص : برنامه نویس وب
@nimageneral 3 سال پیش مطرح شد
3

شما اگر Collation دیتابیس تون رو به utf8_general_ci تغییر بدید مشکل حل خواهد شد


مجتبی درزی
تخصص : برنامه نویس php
@mojtaba8910 3 سال پیش مطرح شد
1

دوست عزیز از اگر در دیتابیس هم به صورت علامت سوال یا حروف ناخوانا ذخیره میشود. باید Collation فیلد مورد نظر در جدول مورد نظر خودتون رو به utf8_general_ci تغییر بدید .
اما اگر پس از select کردن از دیتابیس و هنگام نمایش در سایت برای شما علامت سوال یا حروف نامفهوم نشان میدهد. میتونید از روش زیر استفاده کنید.

$db = mysqli_query('localhost', 'root', '', 'ecommerce');
mysqli_query($db, "SET NAMES utf8");


محمد مهدی امیری
تخصص : جوجه برنامه نویس PHP
@wpuser 3 سال پیش مطرح شد
0

من دقیقا هر دوروش رو انجام دادم ولی نشد


کیهان
تخصص : PHP programmer
@keyhan 3 سال پیش آپدیت شد
2

سلام @wpuser
اگه از php استفاده می کنید و همچنین اتصالتون به دیتابیس به کمک PDO صورت میگیره باید به این صورت عمل کنید

$conn= new PDO('mysql:dbname=xnews;host=localhost;port=' . $LOCAL_DB_PORT, 
          $LOCAL_DB_USER, 
          $LOCAL_DB_PASS, 
          array(PDO::MYSQL_ATTR_INIT_COMMAND =>  "SET NAMES 'UTF8'")
      );

یا به جای استفاده در آرگومان آخر میتونید از setAttribute استفاده کنید

  $conn->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND ,  "SET NAMES 'UTF8'");

داده های قبلی رو پاک کنید و دوباره اقدام به ذخیره اطلاعات کنید
موفق باشید


رضا جهانگیر
تخصص : Full-Stack Developer
@rezajahangir 3 سال پیش مطرح شد
0

سلام به شما دوست عزیز.
وارد phpmyadmin بشو، رو دیتابیست کلیک کن، بعد operations رو انتخاب کن و Collection رو بذار رو utf8_general_ci و مجدد اطلاعات رو داخل دیتابیس ذخیره کن.
موفق باشید.


نیما
تخصص : جوجه برنامه نویسی که میخواد فو...
@Nima.nori 3 سال پیش مطرح شد
0

اقا @mojtaba8910 کاملا درست می گن
به احتمال زیاد مشکل شما از نوع دوم هست و کافیه یه بخش آپشن پاس بدین
دقت کنین وقتی set names utf8 رو پاس می دین
دیگه نمی تونین به روش آبجکتیو به بخش های ریسپاس دسترسی داشته باشین و باید از آرایه استفاده کنین

$result->home //قبل
$result['home'] //حالا

محمد مهدی امیری
تخصص : جوجه برنامه نویس PHP
@wpuser 3 سال پیش مطرح شد
0

یک سوال دوستان کلمه localhost رو اینسرت میکنم اینسرت نمیشه جاش خالی میشه باید چیکار کنم


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام