如何在MYSQL数据库中保存很长的整数数据
Posted
技术标签:
【中文标题】如何在MYSQL数据库中保存很长的整数数据【英文标题】:How to save a very long integer data in the MYSQL Data base 【发布时间】:2021-08-28 23:37:18 【问题描述】:我使用具有 265(或更多)位密钥的加密算法并尝试将加密数据保存到数据库中,我的加密数据是一个非常大的整数。尝试将其保存在 mysql 数据库服务器中时遇到问题。数据保存在数据库字段中为'9'的连续。注意我的数据库中所有字段的类型都是VARCHAR(),这是确定字段类型的代码“
DB_Columns="(ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,CredtNo VARCHAR(700),Fname VARCHAR(700), Lname VARCHAR(700), Balance VARCHAR(1000) )"
而使用python插入加密数据的语句是:
insert_stmt = (f"INSERT INTO Tname (PhoneNo,CryptoPhon, Fname, Lname, Balance ) VALUES (%s, %s, %s, %s, %s)")
Cursor.execute(insert_stmt, Record) # Executing the SQL command
请注意,记录是我的加密数据,要保存在我的数据库中的值之一是: (2175317202645953348971113133719362660225751942313095427832814482408365145539992811710213981089606200860357565008258095906567757394686551412950904123490993298692780332626039419440732654731110306170537866185857978741870335596755093012097029150)类型整数的 P>
现在,当我想从数据库中检索我的加密数据时,它将是这样的: '99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 ......... 99'
我能知道是什么问题,以及如何解决吗?
【问题讨论】:
错误是什么?创建 Record 参数的代码是什么?当 MySQL 尝试将 Record 的元素转换为字符串时,可能会出现问题。 二进制数据应该是VARBINARY
,而不是VARCHAR
。
我把数据库中的加密数据保存为整数,而不是二进制值,你觉得转换成二进制能解决问题吗?
【参考方案1】:
我对 MySQL 不太熟悉,但也许你可以使用
VARBINARY
或类似 BLOB 的数据类型。
【讨论】:
以上是关于如何在MYSQL数据库中保存很长的整数数据的主要内容,如果未能解决你的问题,请参考以下文章