riz*_*oro 15 php ruby ruby-on-rails
我正在寻找一种没有rails的简单ruby代码的方法.我来自PHP世界,有时,我只是构建一个带有Mysql连接的页面,运行查询并在简单的表中显示结果(例如,简单的日志或报告).例:
<?php
$con = mysql_connect("localhost","user","pass");
mysql_select_db("mydb");
$query = mysql_query("SELECT * FROM users");
while($data = mysql_fetch_assoc($query) {
echo "<p> $data[name] - $data[age] </p>";
}
?>
Run Code Online (Sandbox Code Playgroud)
这只是一个简单的例子,但反映了我需要用ruby做的事情.我不希望所有的rails框架只是做这样的事情.如何使用简单的ruby代码实现这一目标?
Kru*_*ule 13
首先,Ruby不像php.没有将文件拖放到public_html中并希望一切正常.
从来没有,有可能这样做,有点.因此我们默认使用没有ORM的Mysql适配器.
在开始之前,您将需要mysql适配器,因此请使用以下命令安装:
gem install mysql2
Run Code Online (Sandbox Code Playgroud)
比写像:
require "rubygems"
require "mysql2"
client = Mysql2::Client.new(
:host => "127.0.0.1",
:username => "root",
:password => "",
:database => "mydb"
)
records = client.query("SELECT * FROM users")
records.each {|r| p "<p>#{r['name']} - #{r['age']}</p>"}
Run Code Online (Sandbox Code Playgroud)
现在在控制台中运行它
ruby name_of_the _file.rb
Run Code Online (Sandbox Code Playgroud)
这将在控制台中输出记录.如果您想要浏览器输出,则必须编写一个小型服务器:
#!/usr/bin/ruby
require 'rubygems'
require 'socket'
require 'mysql2'
webserver = TCPServer.new('127.0.0.1', 6789)
client = Mysql2::Client.new(
:host => "127.0.0.1",
:username => "root",
:password => "",
:database => "mydb"
)
records = client.query("SELECT * FROM users")
while (session = webserver.accept)
session.print "HTTP/1.1 200/OK\r\nContent-type:text/html\r\n\r\n"
request = session.gets
records.each {|r| session.print "<p>#{r['name']} - #{r['age']}</p>"}
session.close
end
Run Code Online (Sandbox Code Playgroud)
现在,当您这样做时ruby application.rb,服务器将在端口6789上启动,它将输出所需的数据.您可以稍后在其上反向代理并在端口80上使用它.
| 归档时间: |
|
| 查看次数: |
6208 次 |
| 最近记录: |