使用Python将布尔值插入MySQL
我正在尝试将一些值插入到一个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))
3 个回答
2
如果这个值是True或者False,在Python中你可以使用int()这个函数。
>>> a = True
>>> int(a)
1
>>>
conn = MySQLdb.connect(...)
c = conn.cursor()
c.execute("INSERT INTO table (bool) VALUES (%s)",( int(boolVal),))
3
对于Python 2.7和MySQLdb这个包,我是这样使用的。
- 如果是varchar类型的列,使用
'%s'
。 - 如果是布尔值、数字,直接用
%s
、%d
或%i
。
INSERT INTO table (string, bool) VALUES ('%s',%s) % ('string',True)`
3
可以查看一下MySQL的文档。在这里,“布尔”数据类型其实就是0或1。
你看到的这种情况是正常的。