AMF-Perl
view release on metacpan or search on metacpan
lib/AMF/Perl/Sql/MysqlRecordSet.pm view on Meta::CPAN
package AMF::Perl::Sql::MysqlRecordSet;
# Copyright (c) 2003 by Vsevolod (Simon) Ilyushchenko. All rights reserved.
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
# The code is based on the AMF-PHP project (http://amfphp.sourceforge.net/)
=head1 NAME
AMF::Perl::Sql::MysqlRecordSet
Translated from PHP Remoting v. 0.5b from the -PHP project.
=head1 DESCRIPTION
Encode the information returned by a Mysql query into the AMF RecordSet format.
=head1 CHANGES
=head2 Wed Apr 14 11:06:28 EDT 2004
=item Started taking column types from statement handle.
=head2 Sun Jul 27 16:50:28 EDT 2003
=item Moved the formation of the query object into Util::Object->pseudo_query().
=head2 Sun May 11 18:22:33 EDT 2003
=item Since Serializer now supports generic AMFObjects, made sure we conform.
We need to have the _explicitType attribute...
=head2 Sun Apr 6 14:24:00 2003
=item Created after AMF-PHP, but something is not working yet...
=cut
use strict;
use AMF::Perl::Util::Object;
sub new
{
my ($proto, $dbh) = @_;
my $self = {};
bless $self, $proto;
$self->dbh($dbh);
return $self;
}
sub dbh
{
my ($self, $val) = @_;
$self->{dbh} = $val if $val;
return $self->{dbh};
}
sub query
{
my ($self, $queryText) = @_;
my $sth = $self->dbh->prepare($queryText);
$sth->execute();
my @initialData;
my $columnNames = $sth->{NAME};
my $columnTypes = $sth->{TYPE};
# grab all of the rows
# There is a reason arrayref is not used - if it is,
#the pointer is reused and only the last element gets added, though many times.
while (my @array = $sth->fetchrow_array)
{
# add each row to the initial data array
push @initialData, \@array;
}
return AMF::Perl::Util::Object->pseudo_query($columnNames, \@initialData, $columnTypes);
}
1;
( run in 2.234 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )