gpt4 book ai didi

python - 如何更新光标并获取实际空间?

转载 作者:行者123 更新时间:2023-11-29 22:15:27 24 4
gpt4 key购买 nike

有3个py文件,客户端、服务器和SQL。

客户端获取计算机名和用户名,然后通过套接字发送到服务器。

服务器获取数据,调用SQL更新MySQL,然后回复“OK”给客户端。

现在运行服务端,运行客户端,就可以成功添加数据了。

再次运行客户端,会显示“已添加”。

但是我删除了MySQL中的数据并再次运行客户端(服务器仍然打开),它应该再次添加数据但不是。仍然显示“已添加”

  • 如果我关闭服务器然后再次调用它,数据可以成功添加。
  • 如果我添加新数据,然后在MySQL中删除它,它也可以添加成功,
  • 只有当我添加新数据,然后再次运行客户端,然后删除MySQL中的数据时,我才能再次添加数据,除非重新启动服务器。

==========服务器==========

'''

......

'''

def clientThread(conn):

message = conn.recv(1024)

data = message.split(' ')

computer_name = data[0]

user_name = data[1]

main(computer_name,user_name) //call SQL

reply = 'OK'

conn.sendall(reply)

conn.close()

while 1:

conn,addr = s.accept()

clientThread(conn)

========== SQL ==========

'''
......
'''


def searchComputerName(computer_name):

c = db.cursor()

sql="SELECT * FROM `mtk_pc_name` WHERE name='%s'"%computer_name

if(c.execute(sql)):

common_ID = c.fetchone()[0]

c.close()
return common_ID
else:
print'searchComputerName false'
c.close()
return False

def main(computer_name,user_name):

common_ID=searchComputerName(computer_name)

if(common_ID):
if(compareUserName(common_ID,user_name)):
print"It has been added."
else:
updateUserName(common_ID,user_name)
else:
common_ID=searchUserName(user_name)
if(common_ID):
updateComputerName(common_ID,computer_name)
else:
addNewItem(user_name,computer_name)

最佳答案

我找到了解决方案。

在 SQL 的每个函数中添加以下内容:

db = MySQLdb.connect(host=hostName,user=userName,passwd=password,db=database)

cursor=db.cursor()

现在工作正常。

显然我会将它提取为函数的参数。最后,它看起来像这样:

def searchComputerName(computer_name,cursor):
def addNewItem(user_name,computer_name,cursor,db):

虽然我不知道为什么一开始声明的全局数据库和游标不能很好地工作。

关于python - 如何更新光标并获取实际空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31240944/

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