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