[前][次][番号順一覧][スレッド一覧]

mysql:5289

From: Hiroyuki OYAMA <Hiroyuki OYAMA <oyama@xxxxxxxxxx>>
Date: Mon, 1 Apr 2002 00:05:00 +0900
Subject: [mysql 05289] [rfc] Net::MySQL & DBD::mysqlPP

クレイフィッシュの小山と申します。

MySQLの通信プロトコルをなんとなくPure Perlで実装したモ
ジュールNet::MySQLと、それを利用したDBIのドライバ
DBD::mysqlPPを書きました。
# JDBCで言うところのType4 driver

    http://ymca.infoware.ne.jp/dist/Net-MySQL-0.01.tar.gz
    http://ymca.infoware.ne.jp/dist/DBD-mysqlPP-0.01.tar.gz

libmysqlを使わずにPerlだけで実装したので、perl5.6.0以降で
IO::Socketが使える環境であれば基本的にOSを問わずMySQLの
daemonと*直接*通信できます。既に動作を検証できている環境は
以下の通りです。

    * FreeBSD 3.4 with perl 5.6.1 build for i386-freebsd
    * FreeBSD 4.5 with perl 5.6.1 build for i386-freebsd
    * FreeBSD 4.0 with perl 5.005_03 build for i386-freebsd
    * Windows2000 with ActivePerl 5.6.1-build631
    * MacOS X     with perl 5.6.0 build for darwin
    * MacOS 9.x   with MacPerl 5.6.1r1


NULL passwordで良ければもっと動作できる環境は広がります。さ
らにIO::Socket.pmではなくSocket.pmを使うように書き換えれば
WindowsCEでも動くはずです。

御意見など頂けると幸いです。


Net::MySQL
==========

対応していないもの
    * 圧縮プロトコル
    * UNIX Socketによる接続
    * データベースの作成などmysqladminがやりそうな処理

    #!perl
    use Net::MySQL;
    use strict;

    my $mysql = Net::MySQL->new(
        hostname => 'mysqld.example.jp',
        database => 'database',
        user     => 'username',
        password => 'password'
    );
    $mysql->query(q{SELECT id, name FROM table});
    my $record = $mysql->create_record_iterator;
    while (my $column = $record->each) {
        printf "id=%s, name=%s\n",
            $column->[0], $column->[1];
    }
    $mysql->close;
    __END__


DBD::mysqlPP
============
対応していないもの
    * メタデータの取得
    * プレースホルダの解析はテキトウ

    #!perl
    use DBI;
    use strict;

    my $dbh = DBI->connect(
        'dbi:mysqlPP:hostname=mysqld.example.jp;database=database',
        'username', 'password'
    );
    my $sth = $dbh->prepare(q{SELECT id, name FROM table});
    $sth->execute;
    while (my $col = $sth->fetchrow_arrayref) {
        printf "id=%s, name=%s\n", $col->[0], $col->[1];
    }
    $dbh->disconnect;
    __END__
______________
Hiroyuki OYAMA <oyama@xxxxxxxxxx>
System Operations Dept.
Crayfish Co.,Ltd. <http://Crayfish.CO.JP/>
   "PerlとRubyでYahoo!メッセンジャー"
   -> http://ymca.infoware.ne.jp/

[前][次][番号順一覧][スレッド一覧]