向MySQL添加信息不起作用

时间:2014-03-29 23:16:35

标签: python mysql database row

已经提出了很多与这个项目有关的问题,但我遇到了太多麻烦,而且我正试图弄明白。

使用Python和Scrapy获取网络信息。 我可以使用以下代码将3个项目(Title,CriticalScore,UserScore)中的每一个添加到数据库seperatley中:

cursor.execute("INSERT INTO ps3 (userscore) VALUES (%s)",[item['uscore']])

现在它工作正常,它将它们放在上升的ROWS中并且一切都很好。 但是,我需要将Title,CriticalScore和UserScore添加到同一行,当我尝试它时,我收到此错误:

raise errorclass, errorvalue
_mysql_exceptions.ProgrammingError: (1064, 'You have an error in your SQ
L syntax; check the manual that corresponds to your MySQL server version for the
right syntax to use near \'),("\'60\'",),("\'4.9\'",))\' at line 1')

我使用这行代码得到了错误:

cursor.execute("INSERT INTO ps3 (titles, criticalscore, userscore) VALUES (%s,%s,%s)",[item['title'],item['cscore'],item['uscore']])

我一直在使用Stack Overflow Python聊天,很遗憾没有人能够解决这个问题。 如果有任何帮助,这就是我创建表格的方式:

cursor.execute('''CREATE TABLE ps3 
    (ID INT AUTO_INCREMENT PRIMARY KEY, Title text, CriticalScore text, UserScore text)''') 

真的很感激任何帮助。

1 个答案:

答案 0 :(得分:1)

以下是应该起作用的:

cursor.execute("""
    INSERT INTO 
        ps3 
        (titles, criticalscore, userscore) 
    VALUES 
        (%s,%s,%s)""",
    [item['title'][0] if item['title'] else '',
     item['cscore'][0] if item['cscore'] else '',
     item['uscore'][0] if item['uscore'] else ''])

但是,不要在管道中进行,而是最好在scrapy蜘蛛中进行,在那里提取数据。