1. 程式人生 > >python中處理插入mysql中的bit欄位

python中處理插入mysql中的bit欄位

mysql中有一個表goods,欄位較多,還有幾個bit型別的。按照我的一般辦法,是把引數定義成dict,如:

        goodsInfo = {}      

        goodsInfo['id'] = self.get_argument('id','')
        goodsInfo['goodsName'] = self.get_argument('goodsName','')
        goodsInfo['jp'] = self.get_argument('jp','')
        goodsInfo['dw'] = self.get_argument('dw','')
        goodsInfo['needKc'] = int(self.get_argument('needKc',1))
        '''
        還有很多,不再寫,needKc就是bit型別
        '''

然後寫SQL語句:

sqlStr = "insert into goods(id,goodsName,jp,dw,needKc,#等等剩餘欄位
sqlStr += "values('%(id)s','%(goodsName)s','%(jp)s','%(dw)s',%(needKc)s,#等等剩餘欄位

最後呼叫cur.execute(sqlstr, goodsInfo),執行報錯,意思是needkc長度不足, 後又把%(nnedKc)s改為%(nnedKc)d,又提示%d期望整形數值,而不是str。調整很多次都不行,mmd,不行老子給你用原生態SQL語句。sqlstr最後加了一句:

sqlStr = sqlStr % goodsInfo

執行我改為cur.execute(sqlstr),一次通過。nnd,不用你的引數