кириллица и mysql

Тема в разделе "PHP", создана пользователем phillip, 3 май 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. phillip

    phillip

    Регистр.:
    4 сен 2007
    Сообщения:
    413
    Симпатии:
    15
    в mysql записываются вопросы вместо кириллицы и все тут. хз как быть. гугл обшарил- помогло вот что

    mysql_query("SET NAMES UTF-8");
    непосредственно после подключения к бд. вопрос- иначе никак? а то скрипт тяжелый, неохото делать дополнительный запрос к бд
     
  2. FlashBlack

    FlashBlack Постоялец

    Регистр.:
    19 сен 2006
    Сообщения:
    77
    Симпатии:
    45
    Это не повлечет на нагрузку скрипта.
    П.с: прописывать только при инициализации мускуля, mysql_connect...
     
  3. Yozik

    Yozik

    Регистр.:
    5 дек 2007
    Сообщения:
    239
    Симпатии:
    65
    Если кодировка UTF-8, то никак. Да и запрос этот выполняется только после подключения к БД, соответственно заметной нагрузки ощущаться не будет.
     
  4. saen

    saen

    Регистр.:
    6 авг 2006
    Сообщения:
    756
    Симпатии:
    129
    Ну не знаю, я бы тут поспорил) что мешает к mysql прикрутить ini файл с примерно таким содежанием:
    Код:
    [mysql]
    default-character-set=utf8
    
    Добавлено через 17 минут
    дело в том, что соединение mysql_connect, в отличие от mysql_pconnect, непостоянное. А это значит, что оно разрывается после каждого отработанного запроса в БД. Иными словами, У вас будет в 2 раза больше запросов в БД с этим "SET NAMES..."
     
  5. a_n_d_y

    a_n_d_y

    Регистр.:
    26 мар 2006
    Сообщения:
    465
    Симпатии:
    61
    Этот запрос нифига нагрузки не добавит, пусть он и лишний...
     
  6. stealtheos

    stealtheos Создатель

    Регистр.:
    28 апр 2010
    Сообщения:
    19
    Симпатии:
    1
    Поставь сравнение в БД "cp1251_general_ci"

    а потом подключайся к БД таким образом и все будет ок

    $dblink = mysql_connect('localhost', $DB_USER, $DB_PASSW);
    mysql_select_db($DB_NAME, $dblink);
    mysql_query ("set character_set_client='cp1251'");
    mysql_query ("set character_set_results='cp1251'");
    mysql_query ("set collation_connection='cp1251_general_ci'");
     
  7. a_n_d_y

    a_n_d_y

    Регистр.:
    26 мар 2006
    Сообщения:
    465
    Симпатии:
    61
    Да не нужно лишних запросов, если set names хватает, то и не стоит увеличивать...
     
  8. phillip

    phillip

    Регистр.:
    4 сен 2007
    Сообщения:
    413
    Симпатии:
    15
    как я выше писал, работаю с utf8. зачем мне что-то другое) Но тут появилась еще одна трабла. теперь траблы две!

    1- в бд вместо русских букв добавляются знаки вопроса, типа ??? ???????? ?? раньше такого не было, все работало как по маслу!
    2- через браузер захожу в свой скрипт, заливаю файл на вдс. он изначально в utf8. затем другой скрипт запускается по крону и работает с этим файлом. при этом меняет сам кодировку с utf8 на ansi или как там. раньше все работало отлично, я ничего не трогал.

    первую задачу я решил прописывая mysql_query("SET NAMES UTF-8");
    а вторую решить пока не знаю как. при этом раньше все было нормально, и ничего выдумывать не приходилось. саппорт вдса пока ищет почему так, но еще ничего не выяснил. помогите
     
  9. a_n_d_y

    a_n_d_y

    Регистр.:
    26 мар 2006
    Сообщения:
    465
    Симпатии:
    61
    PHP:
    header("Content-Type: text/html; charset=utf-8");
    AddDefaultCharset utf-8
     
  10. phillip

    phillip

    Регистр.:
    4 сен 2007
    Сообщения:
    413
    Симпатии:
    15
    уже есть и так
     
Статус темы:
Закрыта.