Ruby でデータベースの処理を直接するより、普通に PHP で処理して結果を mechanize で使うと簡単になります。PHP では 現在あらゆるデータベースに対してアクセスする為の情報が豊富なので、Windows 環境でほぼ困る事が無いので、Ruby をスクリプトとして運用で使うのは非常にメリットがあると思います。 json.php(MySQLにアクセスして JSONを返す)
<?php
header( "Content-Type: text/plain; Charset=utf-8" );
header( "pragma: no-cache" );
header( "Expires: Wed, 31 May 2000 14:59:58 GMT" );
header( "Cache-control: no-cache" );
$server = 'localhost';
$db_name = 'lightbox';
$user = 'root';
$password = 'パスワード';
// 接続
$connect = @ new mysqli($server, $user, $password, $db_name);
if ($connect->connect_error) {
die('Connect Error (' . $connect->connect_errno . ') '
. $connect->connect_error);
}
// クエリ
$result = $connect->query("select * from 社員マスタ where 社員コード = '0001'");
if ( !$result ) {
die('クエリーに誤りがあります : ' . $connect->error );
}
// 読み出し
$row = $result->fetch_array(MYSQLI_BOTH);
// 開放
$result->close();
// 接続解除
$connect->close();
print json_encode($row);
?>
json_get.rb
#JSON 経由でデータベースの値を取得
require 'mechanize'
agent = Mechanize.new
agent.verify_mode = OpenSSL::SSL::VERIFY_NONE
agent.follow_meta_refresh = true
agent.user_agent = 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko'
page = agent.get("http://localhost/web/various/db_json/json.php")
obj = JSON.parse((page.body).force_encoding("utf-8"))
i = 0
while i < obj.length / 2
print obj[i.to_s], "\n"
i += 1
end
print obj["社員コード"],"\n"
print obj["氏名"],"\n"
print obj["フリガナ"],"\n"
print obj["所属"],"\n"
print obj["性別"],"\n"
print obj["作成日"],"\n"
print obj["更新日"],"\n"
print obj["給与"],"\n"
print obj["手当"],"\n"
print obj["管理者"],"\n"
print obj["生年月日"],"\n"
|
|
【Rubyの最新記事】
- Ruby(Mechanize) : ココログギャラリー名の変更
- Ruby : Seesaa の設定ページの「最新の情報に更新」ボタンを Ruby の mechanize で押す
- Ruby : 日本語の正規表現はバイナリで
- Mechanize : クラスのメソッドをオーバライドしてヘッダーを送れるようにしてiPhoneとしてサーバに認識させる
- Ruby : 自作WEBアプリケーションの呼び出しに使って機能を拡張する
- Ruby : 根本的なエラー処理 / 標準エラー出力の出力先を標準出力に変更する
- Ruby : ココログのアクセス解析ページの当日データの取得
- Ruby : メソッド定義で URLエンコード
- Ruby : Seesaa の複数のブログの現在の訪問者数とページビューの一覧
- Ruby : ココログギャラリーの設定から、Ruby の基本処理
- Ruby : Seesaa のブログ設定画面で、Form選択からコンボボックス、ラジオボタン、チェックボックスの設定






