如何使用python在mysql中存储一个长50000的大字符串

2024-10-01 22:41:15 发布

您现在位置:Python中文网/ 问答频道 /正文

如何使用python在mysql中存储一个大字符串(长度50000)。 我有一个长度接近50000的大字符串,我必须把它存储到mysql中。 有些人建议将字符串存储为blob或文本类型。在

谁能帮我把字符串转换成blob类型吗

def main():
    stringKey=''
    stringValues=''
    keys=ccv.keys()        //ccv is a dictionary data structure  
    vectors=ccv.values()  //ccv is a dictionary data structure 
    for key in keys:
            stringKey='#'.join(key for key in keys)
    for value in vectors:
            stringValues='$'.join(str(value) for value in vectors)
    insert(stringKey,stringValues)
    print 'insert successful'

def insert(k,v):
    db = mysql.connector.connect(user='root', password='abhi',
                              host='localhost',
                              database='cbir')

    sql= 'INSERT INTO ccv(key,vector) VALUES(%s,%s)'
    args = (k,v)
    cursor=db.cursor()
    cursor.execute(sql,args)
    db.commit()
    db.close()

错误:

^{pr2}$

Tags: key字符串infordbvaluemysqlkeys
3条回答

不需要转换字符串,只需将数据库中的字段类型从varchar更改为longtext。在

您在以下方面犯了一个小错误:

'INSERT INTO ccv(key,vector) VALUES(%s,%s)'

它应该是:

^{pr2}$

注意表示列名的`。在

正如Larry提醒我的那样,参数化查询不必引用这些值。在

如果已经为longtext设置了字段,则无需将数据转换为blob即可正常工作。在

问题只与语法有关,与数据或列类型无关。在

您没有将参数与SQL语句相关联。在

你想要吗

 cursor.execute(sql, args)

而不是

^{pr2}$

相关问题 更多 >

    热门问题