python - 无法使用 python 2.7 在 Mysql 中插入类型文本

标签 python mysql database python-2.7

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

我的连接是正确的,插入语句工作直到我添加字段mod,它给出错误:

ERROR 1406 IN CONNECTION: Data too long for column 'col6' at row 1

知道我正在插入之前已经在程序中计算过的变量。 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

最佳答案

Tinytext 仅包含 255 个字符:

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

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

关于python - 无法使用 python 2.7 在 Mysql 中插入类型文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31420699/

相关文章:

python - Qt - 子部件后面的背景图像

Python新手,等于字符串?

php - 查找逗号分隔的关键字列表

带有整数变量的php mysql更新

mysql - 尝试在单个表中显示员工主管的姓名

mysql - SQL 重命名 NULL

sql - 如何获取外键的主键值

python - 如何在python中向长对象添加美元符号

python - 如何在 Django 1.8 中连接表

mysql - 如何从 MySQL 中的唯一表获取今年和去年