Problem bei Parameterübergabe bei sqlite: execute
Verfasst: Dienstag 18. Dezember 2007, 13:34
Hi,
also ich bekomme in der Zeile 18 immer einen Fehler (siehe unten), und ich weiß nicht wieso.
also ich bekomme in der Zeile 18 immer einen Fehler (siehe unten), und ich weiß nicht wieso.
Code: Alles auswählen
try:
from pysqlite2 import dbapi2 as sqlite
except ImportError:
import sqlite3 as sqlite
class nn:
def __init__(self, connection, tneurons = "", tsynapses = ""):
self.tneurons = tneurons
self.tsynapses = tsynapses
self.connection = connection
self.cursor = self.connection.cursor()
def __del__(self):
self.cursor.close()
self.connection.close()
def add_neuron(self, content):
self.cursor.execute('INSERT INTO %s (content) VALUES (?)' % self.tneurons, (content))
self.connection.commit()
return self.cursor.lastrowid
def add_synapse(self, id1, id2):
self.cursor.execute('INSERT INTO %s (id1, id2) VALUES (?, ?)' % self.tsynapses, (id1, id2))
self.connection.commit()
return self.cursor.lastrowid
def create_tables(self, neurons, synapses):
self.tneurons = neurons
self.tsynapses = synapses
self.cursor.execute('CREATE TABLE %s (id INTEGER AUTO_INCREMENT PRIMARY KEY, content VARCHAR(50))'
% self.tneurons)
self.cursor.execute('CREATE TABLE %s (id1 INTEGER, id2 INTEGER)' % self.tsynapses)
self.connection.commit()
def delete_tables(self, neurons, synapses):
self.cursor.execute('DROP TABLE %s' % neurons)
self.cursor.execute('DROP TABLE %s' % synapses)
self.connection.commit()
def delete_neuron(self):
self.cursor.execute('DELETE FROM %s WHERE id = "?"' % self.tneurons, id)
self.connection.commit()
def delete_synapse(self, id1, id2):
self.cursor.execute('DELETE FROM %s WHERE id1 = "?" AND id2 = "?"' % self.tsynapses, (id1, id2))
self.connection.commit()
def get_neighbours(self, neighbours):
#......
nn = nn(sqlite.connect('test.db'))
nn.delete_tables("nn_neurons", "nn_synapses")
nn.create_tables("nn_neurons", "nn_synapses")
id1 = nn.add_neuron("String1")
id2 = nn.add_neuron("String2")
nn.add_synapse(id1, id2)
Interpreter hat geschrieben:Traceback (most recent call last):
File "M:\Privat\Programming\Projects\Python\sqlitetest.py", line 57, in <module>
id1 = nn.add_neuron("string1")
File "M:\Privat\Programming\Projects\Python\sqlitetest.py", line 18, in add_neuron
self.cursor.execute('INSERT INTO %s (content) VALUES (?)' % self.tneurons, (content))
ProgrammingError: Incorrect number of bindings supplied. The current statement uses 1, and there are 7 supplied.