用Python将布尔值插入MySQL

用Python将布尔值插入MySQL,python,mysql,mysql-python,Python,Mysql,Mysql Python,我试图在MySQL表中插入一些值,前两个值是字符串,最后一个是布尔值。我的问题是,无论我做什么,我似乎都无法让python/MySQL识别布尔值并插入它。据我所知,Python正确地将最后一个值设置为布尔值,但MySQL并不这么认为。每次它在表中都默认为0。下面是一些伪代码,这正是我想要做的 conn = MySQLdb.connect(...) c = conn.cursor() c.execute("INSERT INTO table (name, string, bool) VALUES

我试图在MySQL表中插入一些值,前两个值是字符串,最后一个是布尔值。我的问题是,无论我做什么,我似乎都无法让python/MySQL识别布尔值并插入它。据我所知,Python正确地将最后一个值设置为布尔值,但MySQL并不这么认为。每次它在表中都默认为0。下面是一些伪代码,这正是我想要做的

conn = MySQLdb.connect(...)
c = conn.cursor()
c.execute("INSERT INTO table (name, string, bool) VALUES (%s,%s,%s,(aName,aString,boolVal))
看。“布尔”数据类型将仅为0或1


您看到的行为是预期的。

对于Python 2.7和MySQLdb包,它以这种方式为我工作

  • 对于varchar类型的列,请使用
    '%s'
  • 对于or布尔值,数字仅使用
    %s
    %d
    %i
  • INSERT-INTO-table(string,bool)值('%s',%s)%('string',True)`
    
    如果值为真或假 在python中,可以使用int()

    >>> a = True
    >>> int(a)
    1
    >>>
    
    conn = MySQLdb.connect(...)
    c = conn.cursor()
    c.execute("INSERT INTO table (bool) VALUES (%s)",( int(boolVal),))