各位前辈好,
我想请问一个一直卡住的问题。
我用了cgi写了一个问卷调查的form,里面只有一个type为checkbox的问题。
然后想将使用者圈选起来的答案(复选)用insert存到database里面,
但不知道为何我搞不懂是我漏掉了什么东西导致始终不成功。
这个问卷原本是用txt档存放圈选结果,现在为了练习数据库所以改用sql。
每当某个选项被选中,送出时会写入该选项的一行,像是下面这种感觉:
苹果
香蕉
水梨
苹果
水梨
以下是进行insert部分的程式码。
希望有高手可以指点我一下到底是漏了什么东西或观念才无法成功。
劳烦了,谢谢。
#!/usr/bin/env ruby
#encoding:utf-8
require 'cgi'
cgi = CGI.new
require 'sqlite3'
print cgi.header("text/html; charset=utf-8")
if cgi.params["sauce"].empty?
#例外处理的部分,省略
else
sauces = cgi.params["sauce"] #sauces接收所有被选中的选项,为阵列
# error是出在这部分,但想不出原因
db = SQlite3::Database.new("report1025.db")
db.transaction(){
sauces.each{|i|
db.execute("INSERT INTO votes VALUES(?);",i)
}
}
db.close
# error end
print <<EOF
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<p>谢谢投票。</p>
<div><a href="view_result2.rb">看投票结果</a></div>
<div><a href="enquete_form2.rb">回投票页面</a></div>
</body>
</html>
EOF
end