所以我打算根据某些情况删除、更新或插入一个元组,但我无法让它工作。
首先,我通过检查以下内容来查看项目编号上是否有具有特定 ESSN 的员工:
count =cursor2.execute("从 Works_On 中选择不同的 ESSN WHERE ESSN = ? AND Pno = ?", (SSN, ProjectNumber)).rowcount
如果 select 没有找到任何元组,或者不确定找到了多少个元组,我查找的应该返回 -1。在我的例子中,它返回 0。
但是,当我执行这些 if - 语句时:
if((ChangeToHours==0) and (count != -1)):
print "0"
cursor2.execute("Delete FROM Works_On WHERE ESSN = ? AND Pno = ?", SSN, ProjectNumber)
print "Removed %s from project %s" %SSN, ProjectNumber
if((ChangeToHours>0) and (ChangeToHours<=40) and (count != -1)):
print "!= -1"
cursor2.execute("Update Hours SET Hours= ? WHERE ESSN=? AND Pno =?", ChangeToHours, SSN,
ProjectNumber)
print "Number of hours which employee %s works on project %s successfully changed to %d", SSN, ProjectNunmber,ChangeToHours
使用一些 SSN 和项目编号以及 ChangeToHours = 13 作为输入,我应该进入后一个“如果”,但我进入第一个。另外,我的代码没有做任何事情,通过打印 0,我可以看到。至少它不会打印它应该打印的“已删除...”文本。
运行此代码时我没有收到任何错误。
有人有什么想法吗?
问候, 森德泽
最佳答案
我自己解决了这个问题。
由于这是我第一次使用 Python 进行实验,我想我忽略了基础知识。 ChangedToHours 没有被制成 float 或任何其他数据类型,这当然会导致这些比较出现问题。
所以,这是一个令人尴尬的修复,但可能对其他人有用!
问候 森德泽
关于mysql - 代码无法正常工作 - 没有任何错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18080116/