2014-03-01 7 views
0
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}) 

이이 오류가 반환이 문제가 무엇입니까? (sqlite3를)

OperationalError: near ",": syntax error 

을하지만 그것으로 어떤 문제가 있는지 볼 수 없습니다. 누구든지 도와 줄 수 있습니까?

답변

2

쉼표는 where 절에서는 유효하지 않습니다. 조건은 보통 AND 또는 OR으로 구분됩니다. 그래서,이 무효 : 다음의

WHERE Forename=:oldForename, Surname=:oldSurname 

하나는 유효 할 것이다 :

WHERE Forename=:oldForename AND Surname=:oldSurname 

WHERE Forename=:oldForename OR Surname=:oldSurname 
+0

감사합니다. 그러나, 나는 그것을 수정했지만 여전히 그것을 실행하려고 할 때 동일한 오류가 나타납니다 – Jambofun

+0

아무도 도와 드릴까요? – Jambofun

+0

@ Jambofun. . . * 모든 * 쉼표를 변경 했습니까? –

0

사용 WHERE X=Y AND Y=Z하지 WHERE X=Y, Y=Z

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}) 
0

당신은 WHERE 절에 쉼표를 사용하고 사용과의합니다.