環境
- ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux-gnu]
- gem list
dbd-sqlite3 (1.2.5)
dbi (0.4.5) - sqlite3 3.22.0
質問事項
rubyにて以下のようなSQLを実行したところ2回目のループのexecuteでエラーが発生します。
ruby
1#データ登録 2usrdb = DBI.connect ( "DBI:SQLite3:/Path/to/sample.sqlite3" ) 3id = 1 4usrh = usrdb.prepare( "insert into Records ( Col1, Col2, Col3, Col4, created_at, updated_at ) 5 values (?, ?, ?, ?, ?, ? )") 6dataList.each { |d| 7 usrh.execute( d["Col1"], d["Col2"], d["Col3"] , d["Col4"], Time.now.to_s ,Time.now.to_s ) 8}
実行時のエラーは以下の通りです。
text:エラー内容
1Traceback (most recent call last): 2 8: from Parser.rb:33:in `<main>' 3 7: from Parser.rb:33:in `each' 4 6: from Parser.rb:34:in `block in <main>' 5 5: from /var/lib/gems/2.5.0/gems/dbi-0.4.5/lib/dbi/handles/statement.rb:115:in `execute' 6 4: from /var/lib/gems/2.5.0/gems/dbd-sqlite3-1.2.5/lib/dbd/sqlite3/statement.rb:71:in `bind_params' 7 3: from /var/lib/gems/2.5.0/gems/sqlite3-1.3.13/lib/sqlite3/statement.rb:37:in `bind_params' 8 2: from /var/lib/gems/2.5.0/gems/sqlite3-1.3.13/lib/sqlite3/statement.rb:37:in `each' 9 1: from /var/lib/gems/2.5.0/gems/sqlite3-1.3.13/lib/sqlite3/statement.rb:41:in `block in bind_params' 10/var/lib/gems/2.5.0/gems/sqlite3-1.3.13/lib/sqlite3/statement.rb:41:in `bind_param': bad parameter or other API misuse (SQLite3::MisuseException)
1件目は正常に登録できているので、2回目のusrh.execute
を実行する前になにかリフレッシュするような
処理が必要なのでしょうか?
以上、よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。