gpt4 book ai didi

Python 类型错误 : cannot concatenate 'str' and 'long' objects

转载 作者:行者123 更新时间:2023-11-29 04:45:57 25 4
gpt4 key购买 nike

我在配置文件中几乎没有用户提供的信息,例如 usernamepasswordemail 等。

我使用 configParser 模块从配置文件中解析了数据。

我想把这些信息输入到MySQL数据库中。

数据是这样的:

Usename="ABC"
password="ABC@1"
email="abc123@xyz.com"

我的插入语句是这样的:

"INSERT INTO userinfo (group_ID, rank_ID, login, password, first_name, last_name, email) VALUES ('" + groupid + "', '" + rankID + "', '" + userid + "', '" + password + "', '" + fname + "', '" + lname + "', '" + email + "')"

但它没有执行,因为我收到一个错误:

TypeError: cannot concatenate 'str' and 'long' objects

我尝试过:str(password)str(email) 用于混合类型的变量,但没有成功。

这里,group_IDrank_ID是整数。

我已经按照一位专家的建议尝试了以下方法:

sql = "INSERT INTO userinfo (group_ID, rank_ID, login, password, first_name, last_name, email) "
"VALUES (%s, %s, %s, %s, %s, %s, %s)",
(groupid, rankID, userid, password, fname, lname, email)
try:
c.execute(sql4)
conn.commit()
except StandardError, e:
print e
conn.rollback()

但我得到的错误是:query() argument 1 must be string or read-only buffer, not tuple

可能的解决方案是什么?

最佳答案

不要自己将值插入到您的查询中。通过使用 SQL 参数将其留给数据库适配器:

cursor.execute(
"INSERT INTO userinfo (group_ID, rank_ID, login, password, first_name, last_name, email) "
"VALUES (%s, %s, %s, %s, %s, %s, %s)",
(groupid, rankID, userid, password, fname, lname, email))

标准的 Python-MySQL 适配器使用 %s 作为参数占位符,其他数据库适配器可能使用 ? 代替。

这有一个额外的好处,即 MySQL 会为您弄清楚如何引用每个值,防止 SQL 注入(inject)攻击,并让数据库有机会缓存​​查询的查询计划,并只插入 future 的值。

关于Python 类型错误 : cannot concatenate 'str' and 'long' objects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18910817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com