Как вставить русский текст в sql запрос?

327
24 июля 2017, 13:54

Пытаюсь выполнить

cursor.execute("""INSERT INTO some_data.stories (text) VALUE ("Привет мир")""")

А python 3.6 выдаёт ошибку

UnicodeEncodeError: 'latin-1' codec can't encode characters in position 45-50: ordinal not in range(256)

Как её исправить?

Answer 1

Во-первых, в базе данных в столбце, в который пихаете текст должна стоять кодировка utf8_general_ci.

Во-вторых, когда вы делаете коннект к БД, вы должны явно указывать кодировку, по которой передаются данные.

Если всё правильно сделаете - русский текст засунется без проблем.

P.S. Как в питоне указывать кодировку не знаю, в пхп можно использовать что-то вроде

mysql_set_charset ( string $charset);

Где string $charset - кодировка в кавычках.

READ ALSO
Создание триггера по типу cron-демона

Создание триггера по типу cron-демона

Существует ли возможность создания триггера для MariaDB или MySQL, который бы выполнялся с определённой периодичностьюНапример, удалял записи...

231
Ошибка Access denied for user 'maks12345'@'localhost' to database 'databasewp'

Ошибка Access denied for user 'maks12345'@'localhost' to database 'databasewp'

Хочу перенести сайт WordPress на другой доменЭкспортировал базу данных WordPress в phpMyAdmin, изменил домен и имя базы данных, хочу импортировать базу...

212
INSERD ODKU при вставке нескольких строк

INSERD ODKU при вставке нескольких строк

Добрый день! Есть запрос типа

212