1
我正在使用Ruby Sqlite3库将一些记录插入到数据库中。我有问题得到下面的声明工作(我已经尝试过所有发布的变体);我得到一个SQLite3::RangeException - bind or column index out of range:
异常。插入多个参数给出SQLite3 :: RangeException
该查询的作品,如果我只是硬编码的价值......所以我做错了什么?
statement = db.prepare("insert into IntegrationLogin (Username, Password, ProjectID) values (\"?1\", \"?2\", 1)")
statement.execute [params['username'], params['password']]
statement = db.prepare("insert into IntegrationLogin (Username, Password, ProjectID) values (\"?1\", \"?2\", 1)")
statement.execute params['username'], params['password']
statement = db.prepare("insert into IntegrationLogin (Username, Password, ProjectID) values (\"?\", \"?\", 1)")
statement.execute params['username'], params['password']
您也不应多次使用“准备”语句。如果你这样做,你完全无法使用它的目的。 prepare方法负责构建查询的开销,您只需要执行一次。之后,您可以根据需要随时多次执行该准备好的语句,从而获得仅执行一次开销的性能。 – 2012-04-17 16:27:43