我正在尝试使用Ruby将值插入到本地主机上的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语法中有一个错误;请查看与您的MySQL服务器版本相对应的手册,了解要在”tweet“的第1行使用的正确语法(Mysql2:: error )。
是什么导致了这个错误?
我发现的另一个问题是,当我使用下面的代码向MySQL插入值时,我得到了另一个错误:“未知的列'a‘in 'field list’(Mysql::ServerError::BadFieldError)”
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”。如何解决这个问题?
提前谢谢你,
发布于 2013-04-14 05:18:50
您需要使用CREATE TABLE在数据库中创建一个表,以便向其中插入数据。此时,您说要将数据插入到数据库名称("db1")本身。
此外,您必须首先转义您的数据:
insert = client.query("INSERT INTO tweets (from_user, tweet_text)
VALUES (#{client.escape(status.from_user)},
#{client.escape(status.text)})")https://stackoverflow.com/questions/15993000
复制相似问题