gpt4 book ai didi

python - 使用 Python 进行 MySQL 查询不返回所有结果

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

我编写了一些 python 代码来连接到 MySQL 数据库,打开一个文本文件,并对文本文件中的每个条目执行查询并将结果写入输出文件。然而,不是将每个查询的结果写入输出文件,而是只写入单个结果。如果我使用的查询没有参数,则一切正常。仅当我尝试添加参数时才会出现此问题。

我对 Python 还很陌生,所以我可能会犯一个愚蠢的错误,但我还没有找到任何有帮助的东西,所以任何帮助将不胜感激。

我的代码是:

output = open("results.txt", "w+")

cnx= mysql.connector.connect(**config)
cursor = cnx.cursor()

with open("input.txt") as i:
for line in i:

# Construct query to get type
query = ("select type from table1, table2 "
"where table1.name = %s and table1.id = table2.id")

# Query arguments
args = (line)

cursor.execute(query, args) # Execute query

for entry in cursor:
output.write(str(entry) + "\n")

cursor.close()
cnx.close()

最佳答案

我不确定您正在使用的查询,但我认为如果您的查询有效,这应该接近您想要的:

output = open('myoutputfile.txt', 'w')
cnx = mysql.connector.connect(**config)
cursor = cnx.cursor()

# Construct query to get type, there's no need to include this in the loop
query = ("""SELECT type FROM table1, table2
WHERE table1.name = %s AND table1.id = table2.id""")

with open("input.txt") as f:
for line in f:

# Query arguments
args = (line.strip(), ) # added .strip()

cursor.execute(query, args) # Exec query

entries = cursor.fetchall()
for entry in entries:
output.write(str(entry[0]) + "\n")

cnx.close()
output.close()

关于python - 使用 Python 进行 MySQL 查询不返回所有结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17523111/

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