SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 10.03.2015 18:18:38

platedz
Старожил
Зарегистрирован: 27.03.2012
Сообщений: 314

Перенос базы из одной базы в другую с разными кодировками

Есть две совершенно разные базы. Одна на CP1251 другая на UTF-8. Нужно данные с базы на CP1251 перенести в базу с UTF-8.
Т.е. нужно сделать запрос в базу CP1251 обработать их соответствующим образом, не считая кодировки, убрать теги и тд и тп. И занести их в базу на UTF-8. Как это реализовать?


Wazzup.su - это сервис объединивший в себе все в одном.

Неактивен

 

#2 10.03.2015 18:37:10

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5833

Re: Перенос базы из одной базы в другую с разными кодировками

FAQ №3

MariaDB [test]> create table test(id int, z text character set cp1251);
Query OK, 0 rows affected (0.30 sec)

MariaDB [test]> insert into test values(1,'раз');
Query OK, 1 row affected (0.08 sec)

MariaDB [test]> select * from test;
+------+------+
| id   | z    |
+------+------+
|    1 | раз  |
+------+------+
1 row in set (0.00 sec)

MariaDB [test]> create table test1 (id int, z text character set utf8);
Query OK, 0 rows affected (0.13 sec)

MariaDB [test]> insert into test1 values(2,'два');
Query OK, 1 row affected (0.03 sec)

MariaDB [test]> select * from test1;
+------+------+
| id   | z    |
+------+------+
|    2 | два  |
+------+------+
1 row in set (0.00 sec)

MariaDB [test]> insert into test1 select * from test;
Query OK, 1 row affected (0.05 sec)
Records: 1  Duplicates: 0  Warnings: 0

MariaDB [test]> select * from test1;
+------+------+
| id   | z    |
+------+------+
|    2 | два  |
|    1 | раз  |
+------+------+
2 rows in set (0.00 sec)
 

Неактивен

 

#3 10.03.2015 20:55:23

platedz
Старожил
Зарегистрирован: 27.03.2012
Сообщений: 314

Re: Перенос базы из одной базы в другую с разными кодировками

Это вариант непосредственно через Mysql, а мне данные нужно обработать. Поменять пароль, зашифровать его через другую функцию, где-то удалить теги, где-то поменять где-то добавить


$r1 = mysql_query("select * from `test1`.`table1` limit 10");
while($f1=mysql_fetch_array($r1))
{
mysql_query("insert into `test2`.`table2` set  `name2` = `".mysql_real_escape_string($f1['name1'])."`);
}

Получаю Unknown column 'name' in 'field list'

Хотя запрос с селектом при обращении к test2 работает нормально.

Отредактированно platedz (10.03.2015 20:59:22)


Wazzup.su - это сервис объединивший в себе все в одном.

Неактивен

 

#4 10.03.2015 21:08:30

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5833

Re: Перенос базы из одной базы в другую с разными кодировками

кавычки неправильные.
`".mysql_real_escape_string($f1['name1'])."` -- здесь нужны не обратные а прямые

Неактивен

 

#5 10.03.2015 21:32:00

platedz
Старожил
Зарегистрирован: 27.03.2012
Сообщений: 314

Re: Перенос базы из одной базы в другую с разными кодировками

Спасибо.


Wazzup.su - это сервис объединивший в себе все в одном.

Неактивен

 

#6 10.03.2015 22:36:56

platedz
Старожил
Зарегистрирован: 27.03.2012
Сообщений: 314

Re: Перенос базы из одной базы в другую с разными кодировками

Только кодировка у меня теперь получается другая. Как-то можно указать при импорте кодировку, чтобы не перекодировать?


Wazzup.su - это сервис объединивший в себе все в одном.

Неактивен

 

#7 10.03.2015 23:24:40

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5833

Re: Перенос базы из одной базы в другую с разными кодировками

set names ..

Неактивен

 

#8 11.03.2015 00:14:20

platedz
Старожил
Зарегистрирован: 27.03.2012
Сообщений: 314

Re: Перенос базы из одной базы в другую с разными кодировками

А как мне вставить set names если у меня один запрос на вывод, а другой на запись. И они в циклах чередуются


Wazzup.su - это сервис объединивший в себе все в одном.

Неактивен

 

#9 11.03.2015 00:34:56

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5833

Re: Перенос базы из одной базы в другую с разными кодировками

Вы зря игнорируете данную вам ранее ссылку на FAQ №3

"Сервер MySQL автоматически изменяет кодировку строк при занесении данных в таблицу и при выборке данных из таблицы."

Неактивен

 

#10 11.03.2015 00:45:17

platedz
Старожил
Зарегистрирован: 27.03.2012
Сообщений: 314

Re: Перенос базы из одной базы в другую с разными кодировками

Спасибо. Честно говоря даже не заметил, что это ссылка


Wazzup.su - это сервис объединивший в себе все в одном.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson