我试图将一些值插入MySQL表,前2个值是字符串,最后一个是布尔值。我的问题是,无论我做什么,我似乎都无法使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))
参见MySQL文档。"布尔"数据类型将只是0或1。
你看到的行为是预期的。
对于Python 2.7和MySQLdb包,它以这种方式为我工作。
- 对于varchar类型的列使用
'%s'
- 对于布尔值,数字只使用
%s
,%d
,%i
。
INSERT INTO table (string, bool) VALUES ('%s',%s) % ('string',True)`
如果值为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),))