【问题标题】:Python and Sqlite3 inserting elements errorPython和Sqlite3插入元素错误
【发布时间】:2013-07-17 05:06:11
【问题描述】:

我正在尝试编写数据存档应用程序。我有一个向用户显示问题表单的 GUI(PyQT 设计器)。有13个问题,答案是是或否。并且有13个解释。我在数据库中创建了一个表,它有 29 列。第一列是日期,它是主键。首先我尝试以 TEXT 格式进行日期和解释。我给了 VARCHAR(5) 是和否。但它并没有出现同样的错误:

Here is the first error I gave,

我将该解决方案应用于我的代码,如下所示:

isaretci.execute('INSERT INTO onceKontrol (tarih, cvp1, aciklama1, cvp2, \
                                aciklama2, cvp3, aciklama3, cvp4, \
                                aciklama4, cvp5, aciklama5, cvp6, \
                                aciklama6, cvp7, aciklama7, cvp8, \
                                aciklama8, cvp9, aciklama9, cvp10, \
                                aciklama10, cvp11, aciklama11, cvp12, \
                                aciklama12, cvp13, aciklama13) VALUES \
                                ({0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},\
                                {11},{12},{13},{14},{15},{16},{17},{18},{19},\
                                {20},{21},{22},{23},{24},{25},{26}'\
                                .format (self.once[0], self.once[1], self.once[2], \
                                self.once[3], self.once[4], self.once[5], \
                                self.once[6], self.once[7], self.once[8], \
                                self.once[9], self.once[10], self.once[11], \
                                self.once[12], self.once[13], self.once[14], \
                                self.once[15], self.once[16], self.once[17], \
                                self.once[18], self.once[19], self.once[20], \
                                self.once[21], self.once[22], self.once[23], \
                                self.once[24], self.once[25], self.once[26]) )

tarih 表示日期,cvp[i] 表示答案,aciklama[i] 表示解释。现在它给了我这个错误:

self.once[24], self.once[25], self.once[26],) )
sqlite3.OperationalError: near ",": syntax error

提前致谢。

【问题讨论】:

    标签: python sqlite syntax-error qt-designer


    【解决方案1】:

    你缺少一个右括号

    插入语句需要像INSERT INTO table (header,...) VALUES (val,...)

     (   {0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},\
      {11},{12},{13},{14},{15},{16},{17},{18},{19},\
      {20},{21},{22},{23},{24},{25},{26}   )' #added here
    

    你也应该使用安全的方法

    .execute("INSERT ... VALUES (%s)" % ("?"*len(self.once)),self.ounce)
    

    【讨论】:

    • 我做了你所有的建议。错误已更改但未消失。 (%s)' % ("?"*len(self.once)), self.once) sqlite3.OperationalError: near "?": 语法错误
    • 我解决了这个问题。我在字符串变量中编写了 sql 语法。在语法中放入“,”和“'”非常重要。我的错误就在这里。谢谢。
    猜你喜欢
    • 2014-05-17
    • 1970-01-01
    • 2015-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多