我在 github (/ninjex/rubot) 上编写了一个 Ruby IRC 机器人,它在我刚购买的专用服务器上与 MySQL 有一些冲突的输出。
首先,我们在 MySQL 文件夹(在 .gitignore 中)中建立了与数据库的连接,该文件夹类似于以下代码块。
@con = Mysql.new('localhost', 'root', 'pword', 'db_name')
然后我们有一个实际的函数来查询数据库
def db_query
que = get_message # Grabs query from user i.e,./db_query SELECT * FROM words
results = @con.query(que) # Send query through the connection i.e, @con.query("SELECT * FROM WORDS")
results.each {|x| chan_send(x)} # For each row returned, send it to the channel via
end
在我的本地机器上,运行命令时:
./db_query SELECT amount, user from words WHERE user = 'Bob' and word = 'hello'
我以类似数组的方式在 IRC 中接收输出:["17", "Bob"]
其中 17 是数量,Bob 是用户。
但是,在我的专用服务器上使用相同的功能会产生如下输出:17Bob
我尝试对代码进行许多更改,并尝试将数据解析为它自己的变量,但它似乎17Bob
是作为单个变量出现的,使其无法解析为数组之类的东西,然后我可以用它来正确发送数据。
在我的本地机器和专用服务器上,这对我来说似乎很奇怪,因为我期望输出首先将 17 发送到 IRC,然后 Bob 喜欢:
17
Bob
对于所有功能和来源,您可以查看我的 github /Ninjex/rubot,但是您可能需要安装一些 gem。