Maxim Kasimov wrote: > i'm tying to run example, and then get a traceback. am i something missed? > > mysql> create table tmp_tmp (id int not null auto_increment primary key, > sd varchar(255) not null default '', si int not null default 1); > >>>> import MySQLdb >>>> db = MySQLdb.connect("localhost", "login", "password", "dbname") >>>> c = db.cursor() >>>> query_param = { > ... 'sd' : 'somedata', > ... 'si' : 2, > ... } >>>> table = 'tmp_tmp' >>>> keys = query_param.keys() >>>> values = query_param.values() >>>> sql = "INSERT INTO %s (%s) values (%s)" % (table, ", ".join(keys), ", > ".join(["?"] * len(keys)) ) >>>> c.execute(sql, values) > Traceback (most recent call last): > File "<stdin>", line 1, in ? > File "/usr/local/lib/python2.2/site-packages/MySQLdb/cursors.py", line > 95, > in execute > return self._execute(query, args) > File "/usr/local/lib/python2.2/site-packages/MySQLdb/cursors.py", line > 108, in _execute > self.errorhandler(self, ProgrammingError, m.args[0]) > File "/usr/local/lib/python2.2/site-packages/MySQLdb/connections.py", > line > 33, in defaulterrorhandler > raise errorclass, errorvalue > _mysql_exceptions.ProgrammingError: not all arguments converted
Try another paramstyle (see http://python.org/peps/pep-0249.html), e. g. ... ",".join(["%s"] * len(keys)) ... instead of ... ",".join(["?"] * len(keys)) ... Peter -- http://mail.python.org/mailman/listinfo/python-list