Maison > développement back-end > Tutoriel Python > Pourquoi mon instruction SQLite INSERT échoue-t-elle avec « Nombre incorrect de liaisons » pour les chaînes longues ?

Pourquoi mon instruction SQLite INSERT échoue-t-elle avec « Nombre incorrect de liaisons » pour les chaînes longues ?

Linda Hamilton
Libérer: 2024-11-30 10:23:15
original
713 Les gens l'ont consulté

Why Does My SQLite INSERT Statement Fail with

Nombre incorrect de liaisons

Lors de la tentative d'insertion d'une chaîne dans une base de données SQLite à l'aide du code ci-dessous, une erreur se produit indiquant un numéro incorrect de liaisons :

def insert(array):
    connection=sqlite3.connect('images.db')
    cursor=connection.cursor()
    cnt=0
    while cnt != len(array):
            img = array[cnt]
            cursor.execute('INSERT INTO images VALUES(?)', (img))
            cnt+= 1
    connection.commit()
    connection.close()
Copier après la connexion

Le message d'erreur apparaît lorsque la chaîne à insérer fait 74 caractères long.

La racine du problème

Le code tente de transmettre une séquence d'éléments à la méthodeexecute() en tant que valeurs de liaison. Cependant, le paramètre de valeur de liaison nécessite un tuple et le code néglige de fournir la virgule nécessaire pour créer un tuple.

cursor.execute('INSERT INTO images VALUES(?)', (img)) # Missing comma
Copier après la connexion

Le correctif

Pour résoudre le problème, ajoutez une virgule à la fin du paramètre de valeur de liaison pour créer un tuple :

cursor.execute('INSERT INTO images VALUES(?)', (img,))
Copier après la connexion

Vous pouvez également utiliser une liste littéral, qui est également reconnu comme une séquence valide :

cursor.execute('INSERT INTO images VALUES(?)', [img])
Copier après la connexion

Avec l'une ou l'autre correction, le code insérera correctement le chemin de l'image dans la base de données sans déclencher le message d'erreur concernant un nombre incorrect de liaisons.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal