tutorial - Python pysqlite no acepta mi parametrización qmark
sqlite3 python install (3)
Intente eliminar las comillas en la línea que asigna a stmt2
:
stmt2 = "insert into asgn values (?, ?)"
Además, como dice nosklo, no puede usar la parametrización de los signos de interrogación con las sentencias CREATE TABLE. Pegue el nombre de la tabla en el SQL directamente.
Creo que soy un tonto, tal vez no estoy importando el paquete correcto, pero cuando lo hago ...
from pysqlite2 import dbapi2 as sqlite
import types
import re
import sys
...
def create_asgn(self):
stmt = "CREATE TABLE ? (login CHAR(8) PRIMARY KEY NOT NULL, grade INTEGER NOT NULL)"
stmt2 = "insert into asgn values (''?'', ?)"
self.cursor.execute(stmt, (sys.argv[2],))
self.cursor.execute(stmt2, [sys.argv[2], sys.argv[3]])
...
I get the error pysqlite2.dbapi2.OperationalError: near "?": syntax error
Esto tiene muy poco sentido para mí, ya que los documentos muestran que pysqlite está parametrizado en qmark. Aunque soy nuevo en python y db-api, ¡ayúdame! GRACIAS
Eso es porque los parámetros solo se pueden pasar a VALUES. El nombre de la tabla no se puede parametrizar.
También tiene comillas alrededor de un argumento parametrizado en la segunda consulta. Quite las comillas, la biblioteca subyacente maneja el escape automáticamente.
Si realmente quieres hacerlo, prueba algo como esto:
def leer (db = "proyectos"):
sql = "select * from %s"
sql = sql % db
c.execute(sql)