Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 24, 2015 13:46:33

ajkpro
Зарегистрирован: 2015-02-24
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Странные кодировки MySQL. Как победить?

База создана в кодировке cp-1251. И пока оно на php? то работало. И работает.
А тут нужно загнать в базу кучу данных. А на php очень медленно.
Я нашел хорошую библиотечку на питоне и всё бы хорошо, но подкралась кодировка.
Вот, программка:

#!/usr/bin/python
# -*- coding: cp1251 -*-

#################### -*- coding: utf-8 -*-

import MySQLdb

# соединяемся с базой данных
db = MySQLdb.connect(host=“localhost”, user=“root”, passwd=“parol”, db=“tb”)
# формируем курсор
cursor = db.cursor()

# запрос к БД
sql = “INSERT INTO `zz`(`id`, `test`) VALUES (NULL,'Варяги без приглашения test_3')”
# выполняем запрос
res = cursor.execute(sql)

last_id = cursor.lastrowid

print last_id

# закрываем соединение
db.close()
Пробовал и
# -*- coding: cp1251 -*-
и это
# -*- coding: utf-8 -*-
Просто вижу разный бред:
– phpMyAdmin SQL Dump
– version 4.2.5
http://www.phpmyadmin.net

– Хост: localhost
– Время создания: Фев 24 2015 г., 15:09
– Версия сервера: 5.5.37-0ubuntu0.14.04.1
– Версия PHP: 5.5.9-1ubuntu4.2

SET SQL_MODE = “NO_AUTO_VALUE_ON_ZERO”;
SET time_zone = “+00:00”;

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;


– База данных: `tb`


– ——————————————————–


– Структура таблицы `zz`


CREATE TABLE IF NOT EXISTS `zz` (
`id` int(11) NOT NULL,
`test` text COLLATE cp1251_bin NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=cp1251 COLLATE=cp1251_bin AUTO_INCREMENT=18 ;


– Дамп данных таблицы `zz`


INSERT INTO `zz` (`id`, `test`) VALUES
(6, ‘test_1’),
(14, ‘?’?°?€?????? ?±?µ?· ???€?????»?°???µ?????? test_2’),
(15, ‘?????? ??? ??????????? test_3’);


– Indexes for dumped tables



– Indexes for table `zz`

ALTER TABLE `zz`
ADD UNIQUE KEY `id` (`id`);


– AUTO_INCREMENT for dumped tables



– AUTO_INCREMENT for table `zz`

ALTER TABLE `zz`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=18;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Спасибо!

Александр

Отредактировано ajkpro (Фев. 24, 2015 13:49:15)

Офлайн

#2 Фев. 24, 2015 13:58:49

ajkpro
Зарегистрирован: 2015-02-24
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Странные кодировки MySQL. Как победить?

db = _mysql.connect(
host=“localhost”,
user=“root”,
passwd=“pwd”,
db=“coolinar”,
charset = “utf8”,
use_unicode = True
);
Бестолочь!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version