Heim > Fragen und Antworten > Hauptteil
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.
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...