gpt4 book ai didi

python - Python 中的 MySql 更新问题

转载 作者:行者123 更新时间:2023-11-28 23:21:45 27 4
gpt4 key购买 nike

我正在尝试使用 for 循环更新 mysql 表。当我运行我的脚本并给出以下 mysql 错误时,它只更新一行;

Traceback (most recent call last): File "index.py", line 190, in main() File "index.py", line 167, in main pre_cursor.execute(query, (box_percentage, shelf_number, test_number)) File "C:\Python27\lib\site-packages\MySQLdb\cursors.py", line 205, in execute self.errorhandler(self, exc, value) File "C:\Python27\lib\site-packages\MySQLdb\connections.py", line 36, in defau lterrorhandler raise errorclass, errorvalue _mysql_exceptions.InterfaceError: (0, '')

 for ip in ip_address:

arg_list = []
action ="QuotaInfo"
arg_list.append(upnp_path)
arg_list.append(' --action=')
arg_list.append(action)
arg_list.append(' --ip=')
arg_list.append(ip)

ip_address_count = ip_address_count - 1

print "Ip adress is counting", ip_address_count

if ip_address_count == 0:
break


command = ['python', arg_list]

#Export the result of the subprocess to output variable

p = Popen(command, shell=True, stdin=PIPE, stdout=PIPE, stderr=STDOUT)

output = p.stdout.read()


# max_size_search = re.search(r'(quotaInfoMaxsize)\W+:\W+(\d+)', output)

# if max_size_search:
# max_size = max_size_search.group()
# max_size_digit = int(filter(str.isdigit, max_size))
# max_size_digit_gb = float(max_size_digit / 1048576)
# # print "Max size of the box is:" , max_size_digit


# used_size_search = re.search(r'(quotaInfoUsedsize)\W+:\W+(\d+)', output)

# if used_size_search:
# used_size = used_size_search.group()
# used_size_digit = int(filter(str.isdigit, used_size))
# used_size_digit_gb = float(used_size_digit / 1048576)
# # print "Used size of the box is: ", used_size_digit


# box_in_use_percentage = int(math.ceil((used_size_digit_gb * 100) / (max_size_digit_gb)))

# print "Box in use percentage:", box_in_use_percentage

# box_percentage = 100 - box_in_use_percentage

# print "box percentage", box_percentage


box_percentage = 97

test_shelf_no = re.search(r"(\d+$)+", ip)

shelf_number = int(test_shelf_no.group(1))

print "Shelf number", shelf_number



#prepare a cursor object using cursor method
pre_cursor = db.cursor()

#Query must be string, execute method does not support tuples

query = "UPDATE results_stbs SET pre_planner_percentage = %s WHERE shelf_no = %s AND results_test_id = %s"

pre_cursor.execute(query, (box_percentage, shelf_number, test_number))

db.commit()

db.close()

任何帮助将不胜感激。

最佳答案

不要在循环内关闭数据库连接。而且您不必在循环内执行 commit

关于python - Python 中的 MySql 更新问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41298737/

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