私は sqlite3 を使用しており、http://www.pangloss.com/seidel/shake_rule.htmlのレプリケーションとして試みているコマンド ライン アプリケーションの SQL ステートメントにバインド変数を渡そうとしています。データベースの追加・削除を行う管理ユーティリティです。RubyでSQLを使用し、現在ゲームをプレイしているDM用のペンと紙のRPGユーティリティセットを構築する方法を理解しようとしています。
db.execute ("INSERT INTO insults (position, string) VALUES (?, ?);", cmd_args[1].to_i, cmd_args[2])
db.execute("SELECT * FROM insults WHERE position = ? AND string = ?;", cmd_args[1].to_i, cmd_args[2]) do |output|
puts output
end
最初のクエリは構文エラー「unexpected ',', expected ')'」とそれに続くエラーを引き起こしますが、この行をコメントアウトすると消えます。
後者のクエリは根本的に異なるようには見えませんが、前者をコメントアウトしてもエラーは発生しません。cmd_args 配列の値を手動で設定しても、何も出力されません。データベースには、エラーはスローされませんが、出力されない "1|test" などのいくつかのテスト要素があります。