2012-03-24 14 views
12

Este es mi código Python -Sqlite3 - Actualización de la tabla utilizando el código Python - error de sintaxis cerca de% s

cursor.execute("""UPDATE tasks SET task_owner=%s,task_remaining_hours=%s,      task_impediments=%s,task_notes=%s WHERE task_id=%s""",      (new_task_owner,new_task_remaining_hours,new_task_impediments, 
         new_task_notes,task_id)) 

Ésta es la instrucción SQL que trato en el administrador de SQLite3 (Extensión de Firefox)

UPDATE tasks SET task_owner=%s,task_remaining_hours=%d,task_impediments=%s,task_notes=%s WHERE task_id=%d,("sumod",10,"none","test",1) 

el error que consigo es -

sqlite3.OperationalError: near "%": syntax error 

he intentado muchas búsquedas en la web, incluyendo SO, tutoriales y auto-reparación, pero esto el error no desaparece Qué exactamente estoy haciendo mal aquí.

Respuesta

24

Creo que la implementación SQLite de Python usa marcadores de posición ?, a diferencia de MySQLdb's %s. Review the documentation.

cursor.execute("""UPDATE tasks SET task_owner = ? ,task_remaining_hours = ?,task_impediments = ?,task_notes = ? WHERE task_id= ? """, 
    (new_task_owner,new_task_remaining_hours,new_task_impediments,new_task_notes,task_id)) 
+0

Gracias! Eso funcionó muy bien. – Sumod

Cuestiones relacionadas