кириллица и mysql

Статус
В этой теме нельзя размещать новые ответы.

phillip

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

mysql_query("SET NAMES UTF-8");
непосредственно после подключения к бд. вопрос- иначе никак? а то скрипт тяжелый, неохото делать дополнительный запрос к бд
 
Это не повлечет на нагрузку скрипта.
П.с: прописывать только при инициализации мускуля, mysql_connect...
 
Если кодировка UTF-8, то никак. Да и запрос этот выполняется только после подключения к БД, соответственно заметной нагрузки ощущаться не будет.
 
Если кодировка UTF-8, то никак. Да и запрос этот выполняется только после подключения к БД, соответственно заметной нагрузки ощущаться не будет.
Ну не знаю, я бы тут поспорил) что мешает к mysql прикрутить ini файл с примерно таким содежанием:
Код:
[mysql]
default-character-set=utf8

Добавлено через 17 минут
Это не повлечет на нагрузку скрипта.
П.с: прописывать только при инициализации мускуля, mysql_connect...
дело в том, что соединение mysql_connect, в отличие от mysql_pconnect, непостоянное. А это значит, что оно разрывается после каждого отработанного запроса в БД. Иными словами, У вас будет в 2 раза больше запросов в БД с этим "SET NAMES..."
 
дело в том, что соединение mysql_connect, в отличие от mysql_pconnect, непостоянное. А это значит, что оно разрывается после каждого отработанного запроса в БД. Иными словами, У вас будет в 2 раза больше запросов в БД с этим "SET NAMES..."
Этот запрос нифига нагрузки не добавит, пусть он и лишний...
 
Поставь сравнение в БД "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'");
 
Поставь сравнение в БД "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'");
Да не нужно лишних запросов, если set names хватает, то и не стоит увеличивать...
 
как я выше писал, работаю с utf8. зачем мне что-то другое) Но тут появилась еще одна трабла. теперь траблы две!

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

первую задачу я решил прописывая mysql_query("SET NAMES UTF-8");
а вторую решить пока не знаю как. при этом раньше все было нормально, и ничего выдумывать не приходилось. саппорт вдса пока ищет почему так, но еще ничего не выяснил. помогите
 
PHP:
header("Content-Type: text/html; charset=utf-8");
AddDefaultCharset utf-8
 
уже есть и так
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху