python2.7 mysql execute()問題
怪我咯
怪我咯 2017-05-18 10:52:05
0
1
772

插入資料的部分程式碼:

            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()

執行完程式後得到

[(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

那條insert語句我在資料庫中手動輸入時並沒有問題,但我不知道為什麼execute會出錯。
當我插入資料到只存連結的表格時,是完全沒問題的。
剛剛我想輸出錯誤原因時,發現資料竟然迷之插入成功了,然後我試著用executemany()後就又出現錯誤了。

怪我咯
怪我咯

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

全部回覆(1)
PHPzhong

最後我放棄使用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...

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!