update - sqlite3 python download




Python pysqlite n'accepte pas mon paramétrage qmark (2)

Je pense que je suis un bonehead, peut-être ne pas importer le bon paquet, mais quand je fais ...


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 

Cela n'a pas beaucoup de sens pour moi, car les docs montrent que pysqlite est paramétré par qmark. Je suis nouveau sur python et db-api, aidez-moi! MERCI


Essayez de supprimer les guillemets dans la ligne stmt2 à stmt2 :

    stmt2 = "insert into asgn values (?, ?)"

En outre, comme le dit nosklo, vous ne pouvez pas utiliser le paramétrage de point d'interrogation avec les instructions CREATE TABLE. Collez le nom de la table dans le SQL directement.


En effet, les paramètres ne peuvent être transmis qu'à VALUES. Le nom de la table ne peut pas être paramétré.

Vous avez également des guillemets autour d'un argument paramétré sur la deuxième requête. Supprimez les citations, l'échappement est géré par la bibliothèque de soulignement automatiquement pour vous.





python-db-api