[問題] 用ruby的cgi實作SQL的問題
各位前輩好,
我想請問一個一直卡住的問題。
我用了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)
→
10/28 19:25, , 1F
10/28 19:25, 1F
→
10/28 19:26, , 2F
10/28 19:26, 2F
→
10/29 21:32, , 3F
10/29 21:32, 3F
→
10/29 22:34, , 4F
10/29 22:34, 4F
推
10/30 02:00, , 5F
10/30 02:00, 5F
→
10/30 09:34, , 6F
10/30 09:34, 6F
→
10/30 09:34, , 7F
10/30 09:34, 7F
推
11/15 19:40, , 8F
11/15 19:40, 8F
→
11/16 21:19, , 9F
11/16 21:19, 9F
推
12/09 23:23, , 10F
12/09 23:23, 10F
→
12/29 22:11, , 11F
12/29 22:11, 11F
Ruby 近期熱門文章
PTT數位生活區 即時熱門文章
-1
12