راکت
حل شده

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

7 پاسخ

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

ثبت پرسش جدید

پاسخ‌ها

7
کیهان
کیهان
@keyhan

تخصص: PHP programmer

بهترین پاسخ

سلام @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

تخصص: برنامه نویس وب

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

مجتبی درزی
مجتبی درزی
@mojtaba8910

تخصص: برنامه نویس php

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

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

شاید پاسخ شما همین‌جا باشد

محمد مهدی امیری
محمد مهدی امیری
@wpuser

تخصص: جوجه برنامه نویس PHP

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

رضا جهانگیر
رضا جهانگیر
@rezajahangir

تخصص: Full-Stack Developer

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

.
.
@jwkwok

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

$result->home //قبل
$result['home'] //حالا
محمد مهدی امیری
محمد مهدی امیری
@wpuser

تخصص: جوجه برنامه نویس PHP

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

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

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