始めまして松尾と申します。
mod_ruby,erubyを使い始めました。
mod_rubyでのdbiの使い方について、お聞きしたいと思います
下記は簡単なチャット用cgiですが、
データベースハンドラの使い方でもうすこしうまい方法は無いでしょうか?
今はとりあえず、Chat::write Chat::viewの両者で@@dbhを共有できている
(つもり)ですが、クラスが増えた時に、別クラスからもハンドラを共有
するには、どうすればよいでしょうか?
ruby自体はじめてなので、間抜けなことをしてるかも知れませんが、
何か気づいた点があれば、それも教えて頂けると大変ありがたいと
思います。
----------------
require 'cgi'
require 'dbi'
require 'kconv'
class Chat
@@dbh = DBI.connect("DBI:Mysql:chat", "username", "password")
end
def Chat::disconnect
@@dbh.disconnect
end
def Chat::write(name, message)
unless (@@dbh.ping) then
@@dbh = DBI.connect("DBI:Mysql:chat", "username", "password")
end
#@@dbhを使ってdbに書き込みする
end
def Chat::view(name)
unless (@@dbh.ping) then
@@dbh = DBI.connect("DBI:Mysql:chat", "username", "password")
end
#@@dbhを使ってデータを取り出して表示する
end
begin
cgi = CGI::new
name = cgi['name'][0]
message = cgi['message'][0]
if (name and message and name.length > 0 and message.length >0) then
Chat::write(name, message)
end
Chat::view(name)
ensure
Chat::disconnect
end
----------------
--
Takashi Matsuo
t-matsuo@...