Chris Winters > SPOPS > SPOPS::Import::DBI::Update

Download:
SPOPS-0.87.tar.gz

Dependencies

Annotate this POD

CPAN RT

New  1
Open  0
View/Report Bugs
Module Version: 1.01   Source  

NAME ^

SPOPS::Import::DBI::Update - Update existing data in a DBI table

SYNOPSIS ^

 #!/usr/bin/perl
 
 use strict;
 use DBI;
 use SPOPS::Import;
 
 {
     my $dbh = DBI->connect( 'DBI:Pg:dbname=test' );
     $dbh->{RaiseError} = 1;

     my $importer = SPOPS::Import->new( 'dbupdate' );
     $importer->db( $dbh );
     $importer->table( 'import' );
 
     # Set the update fields individually...
     $importer->field( [ 'foo', 'bar', 'baz' ] );
     $importer->field_value( [ 'fooval', 'barval', 'bazval' ] );
 
     # ...or all at once
     $importer->set_update_data({
         foo => 'fooval',
         bar => 'barval',
         baz => 'bazval',
     });
 
     $importer->where( 'name like ?' );
     $importer->add_where_params( [ "%foo" ] );
     my $status = $importer->run;
     foreach my $entry ( @{ $status } ) {
         if ( $entry->[0] ) { print "$entry->[1][0]: OK\n" }
         else               { print "$entry->[1][0]: FAIL ($entry->[2])\n" }
     }
     $dbh->disconnect;
}

DESCRIPTION ^

This importer updates existing data in a DBI table.

This may seem out of place in the SPOPS::Import hierarchy, but not if you think of importing in the more abstract manner of manipulating data in the database rather than getting data out of it...

Return from run()

The return value from run() will be a single arrayref within the status arrayref. As with other importers the first value will be true if the operation succeeded, false if not. The one difference is that on success the second value will be the number of records updated -- this may be '0' if your WHERE clause did not match anything. (The third value in the arrayref will be the error message on failure.)

ADDITIONAL ACTIONS ^

Methods

set_update_data( \%fields_and_values )

Instead of setting the fields and values with the properties field and field_value, respectively, you can set them all at once with a more natural hash reference.

Properties

field

Arrayref of fields to update

field_value

Arrayref of values to update in the same order as field.

SEE ALSO ^

SPOPS::Import::DBI::GenericOperation

COPYRIGHT ^

Copyright (c) 2004 intes.net, inc.. All rights reserved.

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

AUTHORS ^

Chris Winters <chris@cwinters.com>

syntax highlighting: