Вставка ‘0’ и ‘1’ в качестве бита с использованием python mysqldb

#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’ без кавычек сейчас.