За последние 24 часа нас посетили 22896 программистов и 1268 роботов. Сейчас ищут 813 программистов ...

Сохранение кириллицы в базу данных

Тема в разделе "PHP и базы данных", создана пользователем EmilioSmerty, 23 июл 2020.

  1. EmilioSmerty

    EmilioSmerty Новичок

    С нами с:
    6 июн 2020
    Сообщения:
    27
    Симпатии:
    1
    Всем привет, подключаюсь через Red Bean php к бд phpmyadmin,
    Сохраняет все данные кроме кириллицы.
    Как настроить кодировку?
    Пробовал в .htaccess: AddDefaultCharset Windows-1251, AddDefaultCharset UTF-8
    В код
    $charset="utf8"; header("Content-Type: text/html; charset=utf-8").
    Безуспешно
     
    АнастасияБезликая нравится это.
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.076
    Симпатии:
    1.237
    Адрес:
    там-сям
    @EmilioSmerty phpmyadmin это не БД, а инструмент для работы с БД. А БД это MySQL.
    Чтобы не-латиница сохранялась правильно, надо указывать кодировку соединения. Просто найди как в redbeanphp выполнить команду "SET NAMES UTF8" и выполнляй её каждый раз сразу после соединения с базой.
     
    EmilioSmerty нравится это.
  3. EmilioSmerty

    EmilioSmerty Новичок

    С нами с:
    6 июн 2020
    Сообщения:
    27
    Симпатии:
    1
    Возможно это?( Единственное что есть в документации )
    $enforceUTF8encoding : boolean
    setEnforceUTF8encoding(boolean $toggle) : void
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.076
    Симпатии:
    1.237
    Адрес:
    там-сям
    Я без понятия о чем ты сейчас пишешь. Что-то специфичное для этой библиотеки. А я тебе посоветовал стандартное решение, которое от библиотек не зависит.
     
  5. EmilioSmerty

    EmilioSmerty Новичок

    С нами с:
    6 июн 2020
    Сообщения:
    27
    Симпатии:
    1
    Ладно, спасибо
     
  6. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.591
    Симпатии:
    360
    @EmilioSmerty, к тому-же надо/можно установить используемый набор символов (character set) при создании схемы (базы данных), таблицы и поля таблицы.
    Подробнее
     
  7. EmilioSmerty

    EmilioSmerty Новичок

    С нами с:
    6 июн 2020
    Сообщения:
    27
    Симпатии:
    1
    Да, но при использовании red bean это делается по-другому и я не знаю как
     
  8. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.076
    Симпатии:
    1.237
    Адрес:
    там-сям
    Новые таблицы в базе создаются с кодировкой базы по умолчанию, если явно не указана другая кодировка.
    Короче, есть два фактора:

    1. кодировка самой таблицы. в каком виде база хранит твой текст.

    2. кодировка соединения, т.е. как база воспринимает твоего клиента (php). в каком виде подразумеваются входные и выходные данные.
    mysql умеет перекодировать данные "на лету".

    Если в обоих случаях указана UTF8, то все хорошо. Иначе есть варианты когда приемлемо, а когда хреново.
     
  9. EmilioSmerty

    EmilioSmerty Новичок

    С нами с:
    6 июн 2020
    Сообщения:
    27
    Симпатии:
    1
    Решил вопрос отказавшись от Red Bean php
     
  10. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.591
    Симпатии:
    360
    В чём проблема заключалась? В настройках схемы (базы данных), или соединения с базой данных, или ещё в чём?
     
  11. EmilioSmerty

    EmilioSmerty Новичок

    С нами с:
    6 июн 2020
    Сообщения:
    27
    Симпатии:
    1
    Точно не схемах, проблема была в том, что не смог найти как установить кодировку utf-8 при использовании Red Bean PHP.
    Если без orm, то делается это вот так: mysqli_set_charset($bd, 'utf8');