1

Ruby を使用して、localhost の MySQL に値を挿入しようとしています。挿入したい値は、Twitter 検索の結果です。私のプログラムは結果をファイルに正常に書き込むことができるので、結果を MySQL に挿入したいと考えています。ここに私のコードの一部があります:

results = @search.perform("yahoo", 100)
client = Mysql2::Client.new(:host => "localhost", :username => "root", :password => "123", :database => "db1")
results.map do |status|
insert = client.query ("INSERT INTO table1 (fromuser, tweet) VALUES (#{status.from_user},#{status.text})")
end

エラーは「SQL 構文にエラーがあります。1 行目の " tweet " の近くで使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください (Mysql2::Error)。エラー
の原因は何ですか?

私が見つけたもう 1 つの問題は、次のコードを使用して MySQL に値を挿入したときに、別のエラーが発生したことです。

require 'mysql'
require 'rubygems'
sql = Mysql.real_connect("localhost", "root", "123", "db1")
st1 = "a"
st2 = "b"
user_string = "(#{st1},#{st2})"
query="INSERT INTO table1 (fromuser, tweet) VALUES" + user_string
sql.query(query)

「a」と「b」をテーブルに挿入したい。これを解決するには?

前もって感謝します、

4

2 に答える 2

1

CREATE TABLEデータベースにデータを挿入するテーブルを作成するために使用する必要があります。現時点では、データをデータベース名 ("db1") 自体に挿入したいと言っています。

また、最初にデータをエスケープする必要があります。

insert = client.query("INSERT INTO tweets (from_user, tweet_text)
                       VALUES (#{client.escape(status.from_user)},
                               #{client.escape(status.text)})")
于 2013-04-13T21:18:50.197 に答える