Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 4, 2014 20:58:47

weeklyTea
Зарегистрирован: 2014-01-04
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

запись русских символов в бд

Чувствую, я не первый с таким вопросом, но поиски к успеху не привели.
Дело такое: есть MySQL и есть примерно такой скрипт:

#coding: utf-8
import MySQLdb
db = MySQLdb.connect(host = 'localhost', user = 'user', passwd = 'passwd', db = 'dataBase')
cur = db.cursor()
someVar = 'некоторый русскоязычный текст'
cur.execute( """INSERT INTO testTable (text) VALUES (%s)""", (someVar) )
db.commit()

В итоге в базу записываются непонятные символы, при чем кодировка поля в которое записывается utf8-default collation, тип поля: longtext. Питон версии 2.7

Не подскажете в чем может быть ошибка?

Отредактировано weeklyTea (Янв. 4, 2014 20:59:09)

Офлайн

#2 Янв. 5, 2014 04:12:26

snoopt
Зарегистрирован: 2014-01-05
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

запись русских символов в бд

Попробуйте при коннекте указать кодировку и использовать юникодную строку:

db = MySQLdb.connect(host = 'localhost', user = 'user', passwd = 'passwd', db = 'dataBase',  charset='utf-8')
someVar = u'некоторый русскоязычный текст'

Еще у вас ошибка при запросе: вы посылаете строку вместо кортежа - нужно запятую поставить
cur.execute( """INSERT INTO testTable (text) VALUES (%s)""", (someVar, ) )

Отредактировано snoopt (Янв. 5, 2014 04:18:48)

Офлайн

#3 Янв. 5, 2014 08:42:11

weeklyTea
Зарегистрирован: 2014-01-04
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

запись русских символов в бд



Спасибо, помогло.

Отредактировано weeklyTea (Янв. 5, 2014 08:42:21)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version