各位前辈好,
我想请问一个一直卡住的问题。
我用了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
已解决 原来是SQL打成SQl... 建立了DEBUG的程式码后才发现
作者:
hSATAC (cAt Ash)
0000-00-00 00:00:00换一套 coding 字型吧 XD
老实说一直用最烂的记事本去打... 我得去研究了(死
单纯是因为我不是本科生 有些基础知识没有重视如果之前有人看过我的程式码 在这边说声抱歉
作者: akaing (平心静气谈问题最难) 2012-01-15 19:40:00
Try sublime text 2, or Ruby Mine.
作者:
ryudo (那很好哇)
2013-02-09 23:23:00简单WebApp用Sinatra就好了,何苦用cgi折磨自己?