我正在研究烧瓶并执行此语句
salt=os.urandom(32)
db_session.execute('insert into posUsers values (?, ?, ?, ?)',[usern,unhex("sjg"),salt,row.clientId])
它给这个错误,未定义十六进制!
更新-现在我改为
db_session.execute('insert into posUsers (username,passwd,salt,clientId ) values (?,UNHEX("6568"),UNHEX("haf"), ?)',[usern,row.clientId])
它给出了一个新的错误“列表”对象,没有属性“键”
有什么解决办法吗?
最佳答案
这是因为当您将其传递到python列表时,会将其视为不存在的python函数。
您需要将其包括在sql查询字符串中。
salt=os.urandom(32)
db_session.execute('insert into posUsers values (?,unhex("sjg"),?, ?)',[usern,salt,row.clientId])
unhex是mysql函数,被视为python函数,导致错误