1

将 5 行 4 列数据插入现有 SQLite 数据库,我收到这些错误...

/Users/Sam/.rvm/gems/ruby-2.0.0-p247/gems/sqlite3-1.3.8/lib/sqlite3/database.rb:91:in `initialize': near "tagline": syntax error (SQLite3::SQLException)
        from /Users/Sam/.rvm/gems/ruby-2.0.0-p247/gems/sqlite3-1.3.8/lib/sqlite3/database.rb:91:in `new'
        from /Users/Sam/.rvm/gems/ruby-2.0.0-p247/gems/sqlite3-1.3.8/lib/sqlite3/database.rb:91:in `prepare'
        from /Users/Sam/.rvm/gems/ruby-2.0.0-p247/gems/sqlite3-1.3.8/lib/sqlite3/database.rb:134:in `execute'
        from insert_code_sam.rb:60:in `block in <main>'
        from insert_code_sam.rb:59:in `times'
        from insert_code_sam.rb:59:in `<main>'

这是我的 .rb 文件中的最后几行 (59-61):

    5.times do
      db.execute('INSERT INTO index1 (name tagline blurb photo_url) 
        VALUES (?, ?, ?, ?)', ["name", "tagline", "blurb", "photo"])
    end

有什么建议么?

4

1 回答 1

4

您的 SQL 中只有一个小语法错误。INSERT 的列列表应以逗号分隔:

INSERT INTO index1 (name, tagline, blurb, photo_url) ...
                        ^        ^      ^

所以你的 Ruby 应该是这样的:

5.times do
  db.execute('INSERT INTO index1 (name, tagline, blurb, photo_url) VALUES (?, ?, ?, ?)', ["name", "tagline", "blurb", "photo"])
end

请参阅SQLite INSERT 语法图中的“列名”循环:

在此处输入图像描述

于 2013-10-07T03:05:10.710 回答