Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Перекодировка
Форумы портала PHP.SU » » Вопросы новичков » Перекодировка

Страниц (1): [1]
 

1. Еугений - 15 Августа, 2011 - 23:21:25 - перейти к сообщению
Всем привет. У меня в таблице базы данных достаточно много записей и все в кодировке cp1251 и надо перекодить в utf-8. Можно все записи перекодить? Я используя пма.. Или придется все удалить и в самом начале поставить нужную кодировку utf-8?
2. КЫР - 15 Августа, 2011 - 23:27:45 - перейти к сообщению
если затраты времени не принципиальны, то самый просто вариант

PHP:
скопировать код в буфер обмена
  1.  
  2. $q = mysql_query('SELECT * FROM table');
  3. for ($i=0; $i<mysql_num_rows($q); $i++)
  4. {
  5. $new_field1 = iconv('utf-8','windows-1251',mysql_result($q,$i,'old_field1'));
  6. $new_field2 = iconv('utf-8','windows-1251',mysql_result($q,$i,'old_field2'));
  7. ...
  8. $new_fieldN = iconv('utf-8','windows-1251',mysql_result($q,$i,'old_fieldN'));
  9. mysql_query('UPDATE table SET old_field1="'.$new_field1.'" ... WHERE id='.mysql_result($q,$i,'id'));
  10. }
  11.  
3. Еугений - 15 Августа, 2011 - 23:40:05 - перейти к сообщению
Благодарю! А можно как нибудь через пма через настройки... Ну если нет то ладно!
4. КЫР - 15 Августа, 2011 - 23:42:10 - перейти к сообщению
Насколько я знаю там можно только кодировку самой БД изменить, но не старые значения
5. Еугений - 15 Августа, 2011 - 23:47:58 - перейти к сообщению
Жаль под рукой нет компа но кажется еще можно так- создать таблицу с такими же столбцами, только в нужной кодировке и туда экспортировать все значения из старой базы данных,..
6. DiosPA - 16 Августа, 2011 - 00:52:25 - перейти к сообщению
Через Навикат )
сначала экстпортируй потом импортируй, во время экспорта ставь utf-8 и всё )

 

Powered by ExBB FM 1.0 RC1