从ruby程序调用mysql

时间:2011-06-27 13:47:36

标签: mysql ruby

我正在尝试对从数据库中提取的数据做一些简单的统计,但每当我执行mysql命令时,我得到的就是mysql用法列表。令我困惑的是这个命令可以从命令行运行,但不能从我的ruby脚本中运行。

命令:

query   = 'select * from builds;'
results = `mysql -h <hostname> -u root -D build -e #{query}`
print results

我希望看到该表中的所有内容,但我得到的是:

  

mysql Ver 14.12 Distrib 5.0.37,for   Win32(ia32)版权所有(C)2002 MySQL   AB此软件绝对附带   没有保修。这是免费软件,   欢迎您修改和   根据GPL许可证重新分发它   用法:mysql [OPTIONS] [数据库]
   - ?, - help显示此帮助并退出。 -I, - help
  同义词 - ? --auto-翻版
  启用自动重新散列。一   不需要使用                         'rehash'得到桌子和场地完成,但是   启动                         并重新连接可能需要更长的时间。禁用                          - 禁用自动翻版。 -A, - no-auto-rehash                         没有自动重复。一个人必须使用'rehash'来   得到                         表和现场完成。这样可以更快地启动   的                         mysql并禁用重新连接时的重新连接。   警告:                         不赞成的选项;使用--disable-auto-rehash   代替。 -B, - 补丁不要   使用历史文件。禁用交互式   行为。

...等

任何帮助都会很棒。 感谢。

2 个答案:

答案 0 :(得分:1)

你有什么理由不能只使用mysql gem吗?

答案 1 :(得分:1)

我强烈建议您使用mysql gem for ruby。它允许您本机操作而不是包装命令行。

但是在你的命令中,我会尝试在执行之前用引号括起查询。

results = `mysql -h <hostname> -u root -D build -e "#{query}"`