【发布时间】:2018-01-02 20:52:10
【问题描述】:
当我想在 Python 2.7 中执行我的 sqldb 代码时收到此错误消息:
Traceback (most recent call last):
File "C:/Python27/air18-mysql.py", line 52, in <module>
cursor.execute(query)
File "C:\Python27\lib\site-packages\MySQLdb\cursors.py", line 221, in execute
if not self._defer_warnings: self._warning_check()
File "C:\Python27\lib\site-packages\MySQLdb\cursors.py", line 107, in _warning_check
warnings = self._get_db().show_warnings()
File "C:\Python27\lib\site-packages\MySQLdb\connections.py", line 371, in show_warnings
self.query("SHOW WARNINGS")
File "C:\Python27\lib\site-packages\MySQLdb\connections.py", line 282, in query
_mysql.connection.query(self, query)
ProgrammingError: (2014, "Commands out of sync; you can't run this command now")
我的相关代码如下:
connection = MySQLdb.connect(host='localhost',
user='root',
passwd='1234',
db='database')
cursor = connection.cursor()
query = """
CREATE TABLE `test` (
`A` varchar(100) DEFAULT NULL,
`B` varchar(100) DEFAULT NULL,
`C` varchar(100) DEFAULT NULL,
`D` varchar(100) DEFAULT NULL,
`E` varchar(100) DEFAULT NULL,
`F` varchar(100) DEFAULT NULL,
`G` varchar(100) DEFAULT NULL,
`ID` int(10) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8"""
cursor.execute(query)
connection.commit()
cursor.close()
connection = MySQLdb.connect(host='localhost',
user='root',
passwd='1234',
db='database')
cursor = connection.cursor()
query = """ load data local infile 'C:/Python27/output.csv'
into table test
character set latin1
fields terminated by ';'
enclosed by '"'
lines terminated by '\r\n';
ignore 1 lines;
"""
cursor.execute(query)
connection.commit()
cursor.close()
有人知道我做错了什么吗?
我也用另一个 csv 尝试过它,它工作正常。 也许我的 csv 文件有问题,或者我无法想象这是什么问题。
这是我的 csv 文件的一部分(在 NotePad++ 中):
"apple apricot";" avocado";"blackcurrant (fruit)-";"blackberry";"blueberry (fruit) ";"";"lemon lime"
"quince pear";" banana";"papaya (fruit)-";"orange";"passion fruit (fruit) ";"";"pineapple watermelon"
【问题讨论】:
-
不确认但是,您可以尝试在第二次创建连接时将连接更改为connection1并将光标更改为cursor1。同
connection1 = MySQLdb.connect(host='localhost', user='root', passwd='1234', db='database') cursor1 = connection1.cursor() -
我试过了,我也遇到了同样的问题
-
第 52 行是什么?
-
cursor.execute(query)
-
您是否尝试过手动执行此操作?如果不尝试直接在mysql服务器中手动创建和插入相同的内容?
标签: python csv mysql-python