无法使用python 2.7

时间:2015-07-15 02:52:19

标签: python mysql database python-2.7

我正在使用python 2.7和MySQl。我有一个类型为文本的列(65535)

我的连接正确且插入语句有效,直到我添加字段mod,它会出错:

  

ERROR 1406 IN CONNECTION:第1行的列'col6'的数据太长

知道我正在插入早先在程序中计算过的变量。 value6是类型字符串。我确定使用type()函数。 col6是tinytext类型。我确定使用:

show columns in mydb.mytable

这是我的python代码中的SQL语句。

sql = """INSERT INTO mytable(col1, col2, col3, col4, col5, col6)VALUES (%s,%s,%s,%s,%s,%s)"""

try:
   # Execute the SQL command
   cursor.execute(sql,(value1,value2,value3,value4,value5,value6))
   # Commit your changes in the database
   db.commit()
except MySQLdb.Error, e:
   # Rollback in case there is any error
   db.rollback()
   print "ERROR %d IN CONNECTION: %s" % (e.args[0], e.args[1])

你能指出问题吗?

修改 col6包含一个512十六进制的字符串。字符。它包含我使用的公钥:

pk=x509.get_pubkey()
mod=pk.get_modulus()

我检查了返回类型:

print type(mod)

很抱歉我无法发布整个代码。但是只有插入此列时才会出现问题。在那之前,没关系。

我得到str

1 个答案:

答案 0 :(得分:0)

Tinytext仅包含255个字符:

“TINYTEXT [CHARACTER SET charset_name] [COLLATE collat​​ion_name]

TEXT列,最大长度为255(28 - 1)个字符。如果值包含多字节字符,则有效最大长度较小。每个TINYTEXT值使用1字节长度前缀存储,该前缀表示值中的字节数。“ - https://dev.mysql.com/doc/refman/5.0/en/string-type-overview.html