大型网站制作费用表/商品促销活动策划方案
我试图用来自文本文件的每一行的值填充MySQL数据库中的表,使用以下SQL语法:INSERT INTO Table SET
fieldname1 = "value1",
fieldname2 = "value2",
fieldname3 = "value3";
我使用了一个嵌套的for循环来打印一个字符串(名为SQL3),它对文本文件的每一行使用相同的字段名,试图以正确的方式处理语法。似乎我已经接近了,但它仍然向我抛出了一个SQL语法错误,我似乎对可能发生的事情视而不见。由于这是第一次尝试通过Python连接到数据库,因此可能还隐藏着更多的问题。在
希望有人能帮忙找到问题。有没有丢失一些重要信息?在
代码如下:
^{pr2}$
以下是错误消息:ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Org_rowNr_countsheet = '10578',' at line 1")
我认为在错误点显示语法的打印输出是很有用的,因为脚本似乎正在生成它(在我看来是正确的):INSERT INTO ids SET
Org_rowNr_countsheet = '10579',
Orig_row_10604 = '',
pt3 = '300002',
等等。。。但错误与第一行有关。以下是更详细的错误报告:%run /home/oaklander114/winshare/mysql_pt3/insert_rows_ids.py
INSERT INTO ids SET
Org_rowNr_countsheet='10578',
---------------------------------------------------------------------------
ProgrammingError Traceback (most recent call last)
/home/oaklander114/Canopy/appdata/canopy-1.4.1.1975.rh5-x86_64/lib/python2.7/site- packages/IPython/utils/py3compat.pyc in execfile(fname, *where)
202 else:
203 filename = fname
--> 204 __builtin__.execfile(filename, *where)
/home/oaklander114/winshare/mysql_pt3/insert_rows_ids.py in ()
52 SQL3 = " ".join(query)
53 print SQL3
---> 54 MyCursor.execute(SQL3)
55
56 LineNumber += 1
/home/oaklander114/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/MySQL_python-1.2.5- py2.7-linux-x86_64.egg/MySQLdb/cursors.pyc in execute(self, query, args)
203 del tb
204 self.messages.append((exc, value))
--> 205 self.errorhandler(self, exc, value)
206 self._executed = query
207 if not self._defer_warnings: self._warning_check()
/home/oaklander114/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/MySQL_python-1.2.5-py2.7-linux-x86_64.egg/MySQLdb/connections.pyc in defaulterrorhandler(***failed resolving arguments***)
34 del cursor
35 del connection
---> 36 raise errorclass, errorvalue
37
38 re_numeric_part = re.compile(r"^(\d+)")
ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Org_rowNr_countsheet='10578',' at line 1")
这些是ids表的列:mysql> SHOW COLUMNS FROM ids;
+----------------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------------+--------------+------+-----+---------+-------+
| Org_rowNr_countsheet | varchar(255) | NO | PRI | NULL | |
| Org_row_10604 | varchar(255) | YES | | NULL | |
| pt3 | varchar(255) | YES | | NULL | |
| pt3_ensembl_id | varchar(255) | YES | | NULL | |
| status | varchar(255) | YES | | NULL | |
| pt2_meth | varchar(255) | YES | | NULL | |
| pt3_meth | varchar(255) | YES | | NULL | |
| pt2_kegg_id | varchar(255) | YES | | NULL | |
| pt2_uniprotID | varchar(255) | YES | | NULL | |
| pt3_kegg_hit | varchar(255) | YES | | NULL | |
| pt3_uniprot | varchar(255) | YES | | NULL | |
| pt2_contig | varchar(255) | YES | | NULL | |
| pt2_start | varchar(255) | YES | | NULL | |
| pt2_stop | varchar(255) | YES | | NULL | |
| pt2_strand | varchar(255) | YES | | NULL | |
| pt3_contig | varchar(255) | YES | | NULL | |
| pt3_start | varchar(255) | YES | | NULL | |
| pt3_stop | varchar(255) | YES | | NULL | |
| pt3_strand | varchar(255) | YES | | NULL | |
+----------------------+--------------+------+-----+---------+-------+
19 rows in set (0.00 sec)