rubyの以下のコードで、MYSQLのTESTというテーブルのcontents列に、openで取得したhtml文書を挿入したいのですが、できません。
どのようにコーディングすればよいでしょうか?
現在は、Valueが読み込んだhtml文書以外の、簡単な文字列などでしたら保管できています。
<コード>
require 'open-uri'
require 'mysql2'
require 'openssl'
code=5001
url="https://stocks.finance.yahoo.co.jp/stocks/detail/?code=#{code}"
page = open(url, :ssl_verify_mode => OpenSSL::SSL::VERIFY_NONE) do |f| f.read end
client = Mysql2::Client.new(:host => "localhost", :username => "root")
client.query('CREATE DATABASE IF NOT EXISTS TEST;')
client.query('CREATE TABLE IF NOT EXISTS TEST.html (id MEDIUMINT NOT NULL AUTO_INCREMENT PRIMARY KEY, contents text);')
client.query("INSERT INTO TEST.html (id,contents) VALUES (?,?)",page)
<エラー内容>
C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/mysql2-0.4.9-x64-mingw32/lib/mysql2/client.rb:120:in merge': no implicit conversion of String into Hash (TypeError) from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/mysql2-0.4.9-x64-mingw32/lib/mysql2/client.rb:120:in
block in query'
from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/mysql2-0.4.9-x64-mingw32/lib/mysql2/client.rb:119:in handle_interrupt' from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/mysql2-0.4.9-x64-mingw32/lib/mysql2/client.rb:119:in
query'
from C:/pleiades/workspace/ruby/htmldownload.rb:17:in `<main>'
回答1件
あなたの回答
tips
プレビュー