[[sqliteで削除したり抜粋したり。]]
とりあえずやってみた。sqliteにつながるならできるよね?と思ったら本当にできた。
まぁ、mysqlサーバ側のうんちくはどこにでもあるからRubyクライアント側だけ。
* 接続はどうするの? [#l9d96462]
require 'mysql2'
:
:
db2 = Mysql2::Client.new(:host => '192.168.1.*', :username => 'ユーザ名', :password => 'パスワード', :database => 'DB名')
ちなみに sqlite3だったら、こうするところね。
require 'sqlite3'
:
:
db = SQLite3::Database.new("DBファイル名")
うん。接続するだけなら簡単かな。
データの取り込みについて。
ほぼsqlite3と変わらないかと思ったけど、ここだけ要注意かな。
s3 = []
db2.query("select yymmdd,date,title,url,source from #{db_name} ORDER BY yymmdd DESC").each{|row|
s3.push(row)
}
db2.close
s3.each{|d|
source = d["source"].__decode2
data = nil
if source =~ /<html/
doc = Nokogiri.HTML(source).xpath("//html")
begin
data = doc[0].inner_html.testPP
rescue
data = "NG"
end
else
data = source.clone
end
if data.length > 256
data = data[0..255]
end
print <<EOM
#{d["date"]} #{d["yymmdd"]}
#{d["title"]}
#{d["url"]}
#{data}
EOM
}
わかるかしら?
ruby-sqlite3で、db.execute(select文)で取り出したデータは配列なのよ。中身のテーブルもね。
だけど ruby-mysql2で、db.query(select文)で取り出したものは、全体はそりゃ配列だけど ''個々のテーブルはハッシュ'' になっているの。ハッシュキーはテーブルで定義した名前そのものね。
これ、ちょっぴり要注意。
あと、 ''text型の扱いが全然違う'' のも気を付けて。同じつもりでXMLファイルとか食わせると面倒くさいことになるからね。