0

有人有想法么?我在 bash 中收到此错误消息...

insert_code_sam.rb:31: syntax error, unexpected tIDENTIFIER, expecting ')'
    "INSERT INTO index1 (name) VALUES ("test1");"
                                             ^
insert_code_sam.rb:32: syntax error, unexpected ')', expecting end-of-input

在单个文件 insert_code_sam.rb 中,我试图创建一个新数据库、创建两个表并插入一个测试行。SQlite 表的创建没有问题,但我似乎无法插入行。

require "sqlite3"

db = SQLite3::Database.new( "new_database.db" )

db.execute( 
  "CREATE TABLE index1 (
    id INTEGER PRIMARY KEY AUTOINCREMENT, 
    name TEXT,
    tagline TEXT,
    blurb TEXT,
    photo_url TEXT);"
) 

db.execute( 
  "CREATE TABLE student_profile (
    id INTEGER PRIMARY KEY AUTOINCREMENT, 
    name_id INTEGER,
    thumbnail_url TEXT,
    background_url TEXT,
    quote TEXT,
    bio TEXT,
    education TEXT,
    work TEXT,
    github TEXT,
    treehouse TEXT,
    codeschool TEXT,
    coderwall TEXT);"
) 

  db.execute(
    "INSERT INTO index1 (name) VALUES ("test1");"
  )
4

3 回答 3

1
db.execute(
    "INSERT INTO index1 (name) VALUES ('test1');"
  )
于 2013-10-06T19:09:20.480 回答
1

如果您想使用""分隔符,另一种方法:

db.execute(
    "INSERT INTO index1 (name) VALUES (\"test1\");"
  )
于 2013-10-06T19:09:53.377 回答
0

您过早地结束了字符串——您的代码不是有效的 Ruby 语法。SQLite 无论如何都需要单引号字符串。解决方案是使用单引号VALUES

db.execute(
  "INSERT INTO index1 (name) VALUES ('test1');"
)
于 2013-10-06T19:08:59.777 回答