我正在使用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
答案 0 :(得分:0)
Tinytext仅包含255个字符:
“TINYTEXT [CHARACTER SET charset_name] [COLLATE collation_name]
TEXT列,最大长度为255(28 - 1)个字符。如果值包含多字节字符,则有效最大长度较小。每个TINYTEXT值使用1字节长度前缀存储,该前缀表示值中的字节数。“ - https://dev.mysql.com/doc/refman/5.0/en/string-type-overview.html