The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

DBIx::JSON - Perl extension for creating JSON from existing DBI datasources

DESCRIPTION

This module is perl extension for creating JSON from existing DBI datasources.

One use of this module might be to extract data on the web server, and send the raw data (in JSON format) to a client's browser, and then JavaScript do eval it to generate dynamic HTML.

This module was inspired by DBIx::XML_RDB.

VERSION

Version 0.02

SYNOPSIS

    my $dsn = "dbname=$dbname;host=$host;port=$port";
    print DBIx::JSON->new( $dsn, "mysql", $dbusername, $dbpasswd )
        ->do_select("select * from table;")->get_json;

    or

    my $dsn = "dbname=$dbname;host=$host;port=$port";
    my $obj = DBIx::JSON->new($dsn, "mysql", $dbusername, $dbpasswd);
    $obj->do_select("select * from table;", "colmun1", 1);
    $obj->err && die $obj->errstr;
    print $obj->get_json;

EXPORT

None.

METHODS

new

    DBIx::JSON->new( $dsn, $dbidriver, $dbusername, $dbpasswd );

This method is a constructor. See the DBI documentation for what each of these means.

do_select

    $obj->do_select( $sql [, $key_field [, $hash_array] ] );

This takes a SELECT command string, and calls DBI::selectall_arrayref method. If $key_field is given, this calls DBI::selectall_hashref method. See the DBI documentation for details. $hash_array affects get_json method.

This doesn't do any checking if the sql is valid. Subsequent calls to do_select do overwrite the output.

do_sql

    $obj->do_sql( $sql );

This takes a non SELECT command string (e.g. UPDATE/INSERT/DELETE), and calls DBI::do method. See the DBI documentation for details.

get_json

    $obj->get_json;

Simply returns the JSON generated from the previous SQL call. The format of the JSON output is something like this:

    # default
    [
        ["user1", "data1"],
        ["user2", "data2"],
        ["user3", "data3"],
        ...
    ]

    # if do_select was called with $key_field
    {
        "user1":{"data":"data1", "name":"user1"},
        "user2":{"data":"data2", "name":"user2"},
        "user3":{"data":"data3", "name":"user3"},
        ...
    }

    # if do_select was called with $hash_array
    [
        {"data":"data1", "name":"user1"},
        {"data":"data2", "name":"user2"},
        {"data":"data3", "name":"user3"},
        ...
    ]

has_data

    $obj->has_data;

This returns whether get_json method can be called or not.

clear_data

    $obj->clear_data;

This clears the results from the previous SQL call.

err

    $obj->err;

This returns $DBI::err.

errstr

    $obj->errstr;

This returns $DBI::errstr.

AUTHOR

JSON::Syck by Tatsuhiko Miyagawa, <miyagawa@bulknews.net> Tweaked by Koji Komatsu, <yosty@cpan.org>

BUGS

Please report any bugs or feature requests to bug-dbix-json at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=DBIx-JSON. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

    perldoc DBIx::JSON

You can also look for information at:

SEE ALSO

ACKNOWLEDGEMENTS

None.

COPYRIGHT & LICENSE

Copyright 2006 Koji Komatsu, all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.