python2.7 mysql execute() masalah
怪我咯
怪我咯 2017-05-18 10:52:05
0
1
803

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.

怪我咯
怪我咯

走同样的路,发现不同的人生

membalas semua(1)
PHPzhong

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...

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan