Rumah > Soal Jawab > teks badan
Sebahagian daripada kod untuk memasukkan data:
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()
Dapatkan selepas melaksanakan program
[(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
Tiada masalah apabila saya memasukkan pernyataan sisipan secara manual dalam pangkalan data, tetapi saya tidak tahu mengapa ralat pelaksanaan berlaku.
Apabila saya memasukkan data ke dalam jadual yang hanya menyimpan pautan, tiada masalah langsung.
Tadi apabila saya ingin mengeluarkan punca ralat, saya mendapati bahawa data telah berjaya dimasukkan Kemudian saya cuba menggunakan executemany() dan ralat berlaku lagi.
PHPz2017-05-18 10:54:05
Akhirnya saya berputus asa menggunakan executemany().
INSERT INTO employees (first_name, hire_date)
VALUES ('Jane', '2005-02-12'), ('Joe', '2006-05-23'), ('John', '2010-10-03')
Hanya gunakan borang di atas dan laksanakan().
https://dev.mysql.com/doc/con...