Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 这有什么问题?(sqlite3)_Python_Sql_Select_Sqlite_Operationalerror - Fatal编程技术网

Python 这有什么问题?(sqlite3)

Python 这有什么问题?(sqlite3),python,sql,select,sqlite,operationalerror,Python,Sql,Select,Sqlite,Operationalerror,这将返回以下错误: recordCheck = c.execute("SELECT * FROM Student, Behaviour WHERE Forename=:oldForename, Surname=:oldSurname, YearGroup=:oldYearGroup, FormNumber=:oldFormNumber, Date=:oldDate, BehaviourType=:oldBehaviourType", {"oldForename":oldForename,

这将返回以下错误:

recordCheck = c.execute("SELECT * FROM Student, Behaviour WHERE Forename=:oldForename, Surname=:oldSurname,     YearGroup=:oldYearGroup, FormNumber=:oldFormNumber, Date=:oldDate, BehaviourType=:oldBehaviourType", {"oldForename":oldForename,    "oldSurname":oldSurname, "oldYearGroup":oldYearGroup, "oldFormNumber":oldFormNumber,"oldDate":oldDate,"oldBehaviourType":oldBehaviourType})

但我看不出有什么问题。有人能帮忙吗?

使用
其中X=Y和Y=Z
而不是
其中X=Y,Y=Z

OperationalError: near ",": syntax error

逗号在
where
子句中无效。条件通常由
分隔。因此,这是无效的:

recordCheck = c.execute("SELECT * FROM Student, Behaviour WHERE Forename=:oldForename AND Surname=:oldSurname AND YearGroup=:oldYearGroup AND FormNumber=:oldFormNumber AND Date=:oldDate AND BehaviourType=:oldBehaviourType", {"oldForename":oldForename,    "oldSurname":oldSurname, "oldYearGroup":oldYearGroup, "oldFormNumber":oldFormNumber,"oldDate":oldDate,"oldBehaviourType":oldBehaviourType})
其中一项是有效的:

WHERE Forename=:oldForename, Surname=:oldSurname

您在WHERE子句中使用逗号,应该使用and。

谢谢。但是,我已经修改了,但是在尝试运行时仍然收到相同的错误。有人能帮我吗?@Jambofun。您是否更改了所有逗号?已更新,相同错误:c.execute(“更新学生,行为集Forename=:newForename,姓氏=:newyearname,YearGroup=:newYearGroup,FormNumber=:newFormNumber,Date:=newDate,行为类型=:newBehaviourType其中Forename=:oldForename和姓氏=:oldForename和YearGroup=:oldForename和FormNumber=:oldFormNumber和Date=:oldDate”,{“newForename”:newForename,“newurname”“:newSurname,“newYearGroup”:newYearGroup,“newFormNumber”:newFormNumber,“newDate”:newDate,“oldForename”:oldForename,“old姓氏”:old姓氏,“oldYearGroup”:oldYearGroup,“oldFormNumber”:oldFormNumber,“oldDate”:oldDate})@Jambofun。这是一个完全不同的问题,因为它是一个
update
语句,而OP是一个
select
语句。你应该问另一个问题。但是,SQLite不支持多表更新。
WHERE Forename=:oldForename AND Surname=:oldSurname

WHERE Forename=:oldForename OR Surname=:oldSurname