Ruby中Postgres查询的简单示例

Lar*_*nal 41 ruby postgresql

对于我的生活,我找不到像运行一样的简单例子

"SELECT * FROM MyTable"

在Ruby中.我发现的一切都假设是ORM或Rails.现在,我不想要ORM; 我不想要Rails.我正在寻找使用pg gem并执行简单查询的独立内容.

jus*_*ese 52

来自pg gem文档(http://rubydoc.info/gems/pg/0.10.0/frames)

require 'pg'
conn = PGconn.open(:dbname => 'test')
res  = conn.exec('SELECT 1 AS a, 2 AS b, NULL AS c')
res.getvalue(0,0) # '1'
res[0]['b']       # '2'
res[0]['c']       # nil
Run Code Online (Sandbox Code Playgroud)

我的下一个问题是使用需要密码的数据库进行身份验证.看起来你可以像这样发送一个连接字符串:
PGconn.connect( "dbname=test password=mypass") 或者使用带有参数的constuctor:
PGconn.new(host, port, options, tty, dbname, login, password)或者使用像这里:password => '...'看到的所有可用选项的哈希.

  • 好简单的例子,谢谢.我通过psql,python,Java和Perl对PostgreSQL很有经验,但从未使用过Ruby,这使我很难确认我的Pg gem安装是否正常.赞赏. (6认同)

小智 31

试试这个:

require 'pg'

conn = PGconn.connect("ip adddress", 5432, '', '', "db name", "user", "password")
res  = conn.exec('select tablename, tableowner from pg_tables')

res.each do |row|
  puts row['tablename'] + ' | ' + row['tableowner']
end
Run Code Online (Sandbox Code Playgroud)


Yuc*_*uci 5

对于 gem pg 的较新版本(例如,0.18.3 到当前最新版本 0.21.0),而不是使用:

conn = PGconn.connect(*args)
Run Code Online (Sandbox Code Playgroud)

(PGconn、PGresult 和 PGError 常量已弃用,并将从版本 1.0 起删除。)

您应该使用conn = PG.connect(*args),例如:

require 'pg'

conn = PG.connect("IP-Address", 5432, '', '', "database-name", "username", "password")
res = conn.exec('select product_id, description, price from product')

res.each do |row|
    puts row
end
Run Code Online (Sandbox Code Playgroud)

参考链接:gem pg