#python #mysql-python
#python #mysql-python
Вопрос:
У меня есть скрипт на python, который пытается вставить строки в базу данных MySQL следующим образом:
newCon = MySQLdb.connect(host="hostname", user="username", passwd="password", db="dbname")
newCur = newCon.cursor()
newCur.execute(output)
newCon.commit()
output
вот строка, подобная INSERT INTO TableName VALUES('1','a','0')
где структура таблицы была бы примерно такой:
ID INT UNSIGNED,
name VARCHAR(255) NOT NULL,
active BIT NOT NULL
Однако скрипт выдает предупреждение:
Warning: Out of range value for column 'active' at row 1
newCur.execute(output)
Есть ли способ заставить mysqldb python принимать 1 и 0 в качестве значений для битовых столбцов?
Комментарии:
1. Попробуйте
INSERT INTO TableName VALUES(1, 'a', b'0')
2. или, в конечном счете, используйте параметризованные запросы
3. @Cid Это сценарий для одноразового использования, и я недостаточно знаком с python, чтобы сделать это достаточно общим способом. Как оказалось, я ошибся, и запрос заключал бит в кавычки. Я не уверен, есть ли способ заставить его принимать ‘1’ и ‘0’ в качестве битовых значений, но у меня просто есть выходной запрос, генерирующий ‘0’ и ‘1’ без кавычек сейчас.