near "(": syntax error - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: near "(": syntax error (/thread-33916.html) |
near "(": syntax error - Maryan - Jun-09-2021 Hi guys, I need little help with the code below. I want to edit the guest room, name or surname, but I get "near "(": syntax error". Any help is appreciated, Thank you! This is the table: Code: def editGuest(): viewGuests() print("Choose room number:") roomNumber = input() print("You choose", roomNumber) try: cur = con.cursor() cur.execute("SELECT room,name,surname FROM Guest WHERE room = {}".format(roomNumber)) rowz= cur.fetchone() print("ROOM", "\tNAME", "\tSURNAME") print(rowz[0],rowz[1],rowz[2]) print("What would you like to change?") print("1 - Room, 2 - Guest Name, 3 - Guest Surname") userInput = input() if userInput == "1": print("Enter new room number") newRoom = input() cur.execute("UPDATE Guest(room) SET room = {} WHERE room = {}").format(newRoom, roomNumber) con.commit() elif userInput == "2": print("Enter new name") newName = input() cur.execute("UPDATE Guest(name) SET name = {} WHERE room = {}").format(newName,roomNumber) con.commit() elif userInput == "3": print("Enter new Surname") newSurname = input() cur.execute("UPDATE Guest(surname) SET surname = {} WHERE room = {}").format(newSurname,roomNumber) con.commit() else: print("Invalid Input") except sqlite3.Error as e: print(e) RE: near "(": syntax error - Yoriz - Jun-09-2021 cur.execute("UPDATE Guest(room) SET room = {} WHERE room = {}").format(newRoom, roomNumber)remove (room) cur.execute("UPDATE Guest SET room = {} WHERE room = {}").format(newRoom, roomNumber)The same applies to the other updates remove (name) and (surname)
RE: near "(": syntax error - Maryan - Jun-20-2021 (Jun-09-2021, 02:29 PM)Yoriz Wrote:cur.execute("UPDATE Guest(room) SET room = {} WHERE room = {}").format(newRoom, roomNumber)remove It updates the room, however, it doesn't update the name and surname. The error is : No such column: NAME; or No such column: forSurname cur.execute("UPDATE Guest SET name = {} WHERE room = roomNumber".format(newName)) cur.execute("UPDATE Guest SET surname = {} WHERE room = roomNumber".format(newSurname)) RE: near "(": syntax error - ibreeden - Jun-21-2021 Hi Maryan, There are some things I do not understand. I believe your program or database table have changed since 2021-06-09. (Jun-20-2021, 03:26 PM)Maryan Wrote:This is weird. You never mentioned the column "forSurname" before. And there is no column "NAME"? But then the query at line 8 ("SELECT room,name,surname FROM Guest WHERE room = {}") must also have failed. (Jun-20-2021, 03:26 PM)Maryan Wrote:But these ar not the update statements from your program! You had: cur.execute("UPDATE Guest(name) SET name = {} WHERE room = {}").format(newName,roomNumber)So please show us the actual state:
And by the way. Using the old "format()" method is not the best way. Please study how to use bind variables in sqlite3. Like this. cur.execute("UPDATE Guest(name) SET name = ? WHERE room = ?", (newName, roomNumber) )Note: the second parameter must be a tuple. You should use this principle for reasons of security and performance. |