suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Python2.7 MySQL-Execute()-Problem

Teil des Codes zum Einfügen von Daten:

            try:
                sql = "INSERT INTO {}({}) VALUES(%s)".format(table,cols) % q[0]
                print sql           
                result = self.cur.executemany(sql,q)
                #result = self.cur.execute(sql)
                insert_id = self.db.insert_id()
                self.db.commit()
                #判断是否执行成功
                if result:
                    return insert_id
                else:
                    return 0
            except MySQLdb.Error,e:
                #发生错误时回滚
                print "数据库错误,原因%d: %s" % (e.args[0], e.args[1])               
                self.db.rollback()

Nach Ausführung des Programms abrufen

[(u'""," http://sz.centanet.com/ershoufang/szlg13772053.html"," 345\u4e07|3\u5ba42\u5385|74.89\u5e73"," \u5357|2007\u5e74|\u4f4e\u5c42(\u517134\u5c42)|\u8c6a\u88c5|\u5eb7\u8fbe\u5c14\u82b1\u56ed\u4e94\u671f(\u8774\u8776\u5821)|"',)]
INSERT INTO zydc(follow, house_url, price_area, houseinfo) VALUES(%s)
数据库错误,原因1136: Column count doesn't match value count at row 1
None

Es gab kein Problem, als ich die Einfügeanweisung manuell in die Datenbank eingegeben habe, aber ich weiß nicht, warum der Ausführungsfehler aufgetreten ist.
Wenn ich Daten in eine Tabelle einfüge, die nur Links speichert, gibt es überhaupt kein Problem.
Als ich gerade die Fehlerursache ausgeben wollte, stellte ich fest, dass die Daten erfolgreich eingefügt wurden. Dann habe ich versucht, „executemany()“ zu verwenden, und ein weiterer Fehler ist aufgetreten.

怪我咯怪我咯2749 Tage vor800

Antworte allen(1)Ich werde antworten

  • PHPz

    PHPz2017-05-18 10:54:05

    最后我放弃使用executemany()了。

    INSERT INTO employees (first_name, hire_date)
    VALUES ('Jane', '2005-02-12'), ('Joe', '2006-05-23'), ('John', '2010-10-03')

    直接用上面这种形式,execute()就好。
    https://dev.mysql.com/doc/con...

    Antwort
    0
  • StornierenAntwort