作者davidwu0123 (战乙女)
看板Ruby
标题[问题] 用ruby的cgi实作SQL的问题
时间Sun Oct 27 17:27:21 2013
各位前辈好,
我想请问一个一直卡住的问题。
我用了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
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 133.51.83.22
※ 编辑: davidwu0123 来自: 133.51.83.22 (10/27 17:28)
※ 编辑: davidwu0123 来自: 133.51.83.22 (10/27 17:29)
※ 编辑: davidwu0123 来自: 133.51.83.22 (10/27 17:29)
1F:→ davidwu0123:已解决 原来是SQL打成SQl... 建立了DEBUG的程式码後才 10/28 19:25
2F:→ davidwu0123:发现 10/28 19:26
3F:→ hSATAC:换一套 coding 字型吧 XD 10/29 21:32
4F:→ davidwu0123:老实说一直用最烂的记事本去打... 我得去研究了(死 10/29 22:34
5F:推 guitarpl:用记事本..是神人吧 10/30 02:00
6F:→ davidwu0123:单纯是因为我不是本科生 有些基础知识没有重视 10/30 09:34
7F:→ davidwu0123:如果之前有人看过我的程式码 在这边说声抱歉 10/30 09:34
8F:推 akaing:Try sublime text 2, or Ruby Mine. 11/15 19:40
9F:→ davidwu0123:感谢推荐 11/16 21:19
10F:推 ryudo:简单WebApp用Sinatra就好了,何苦用cgi折磨自己? 12/09 23:23
11F:→ davidwu0123:因为是作业.. 12/29 22:11