Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

DBI recipes

by gmax (Abbot)
on Aug 17, 2003 at 18:47 UTC ( #284436=perlmeditation: print w/ replies, xml ) Need Help??

Help for this page

Select Code to Download


  1. or download this
    sub table_exists {
        my $db = shift;
    ...
        print "table not found!\n";
        $dbh->do( $create_query );
    }
    
  2. or download this
        my $create_query = qq{
            create table employees (
    ...
        my $fieldlist = join ", ", @fields;
        my $field_placeholders = join ", ", map {'?'} @fields;
    
  3. or download this
        my $insert_query = qq{
            INSERT INTO employees ( $fieldlist )
    ...
        my $sth= $dbh->prepare( $insert_query );
    # $insert_query = "INSERT INTO employees ( id, name, salary )
    #            VALUES ( ?, ?, ? )";
    
  4. or download this
        my ($id,  $name, $salary)  = (5, 'Sal', 4500);
        $sth->execute($id, $name, $salary);
    
  5. or download this
        while ( get_values($id, $name, $salary) {
            $sth->execute($id, $name, $salary);
        }
    
  6. or download this
        my @employees_lol = (
            [1, 'Fred',   5000],
    ...
        for (@employees_lol) {
            $sth->execute(@$_);
        }
    
  7. or download this
        my @employees_loh = (
            {id => 3, name => 'Kim',  salary =>  5600},
    ...
        for (@employees_loh) {
            $sth->execute($_->{id}, $_->{name}, $_->{salary});
        }
    
  8. or download this
        for (@employees_loh) {
            $sth->execute(@{$_}{@fields})
        }
    
  9. or download this
        my $query1 = qq{select name from employees};
        my $sth= $dbh->prepare($query1);
    ...
        while (my ($name) = $sth->fetchrow_array) {
            push @names, $name;
        }
    
  10. or download this
        my $query2 = qq{select id, name, salary from employees};
        my @names = map {$_->[1]}
            @{$dbh->selectall_arrayref($query2)};
    __END__
    @names = (qw(Fred Joshua Kim Dave Sal));
    
  11. or download this
        #
        # either
    ...
    __END__
    $names_ref = ['Fred', 'Joshua', 'Kim', 'Dave', 'Sal'];
    @names = ('Fred', 'Joshua', 'Kim', 'Dave', 'Sal');
    
  12. or download this
        my $sth = $dbh->prepare($query2);
        $sth->execute();
    ...
            @{$sth->fetchall_arrayref([0,-2])};
    __END__
    @names = (qw(Fred Joshua Kim Dave Sal));
    
  13. or download this
        #
        # either
    ...
      [ '4', 'Dave', '6000' ],
      [ '5', 'Sal', '4500' ]
    ];
    
  14. or download this
        my $sth = $dbh->prepare($query2);
        $sth->execute();
    ...
      { 'salary' => '6000', 'id' => '4', 'name' => 'Dave' },
      { 'salary' => '4500', 'id' => '5', 'name' => 'Sal' }
    ];
    
  15. or download this
        my $employees_loh = $dbh->selectall_arrayref($query2, {Slice => {}
    +});
    
  16. or download this
        my $sth = $dbh->prepare($query2);
        $sth->execute();
    ...
    
      { 'salary' => '4500', 'name' => 'Sal' }
    ];
    
  17. or download this
        my %employees_h =
            map { $_->[1], $_->[2]}
    ...
        'Dave' => '6000' ,
        'Sal' => '4500'
        );
    
  18. or download this
        #
        # either
    ...
      '4' => [ 'Dave', '6000' ],
      '5' => [ 'Sal', '4500' ]
    );
    
  19. or download this
        my $employees_hoh = $dbh->selectall_hashref($query2, 1);
    __END__
    ...
     '4' => { 'salary' => '6000', 'id' => '4', 'name' => 'Dave' },
     '5' => { 'salary' => '4500', 'id' => '5', 'name' => 'Sal' }
    };
    
  20. or download this
        my $employees_hoh2 = $dbh->selectall_hashref($query2, 3);
    __END__
    ...
      '4500' => { 'salary' => '4500', 'id' => '5', 'name' => 'Sal' },
      '6000' => { 'salary' => '6000', 'id' => '4', 'name' => 'Dave' }
     };
    
  21. or download this
        my ($id, $name, $salary) ;
    
    ...
    3       Kim         5600
    4       Dave    6000
    5       Sal         4500
    
  22. or download this
        $sth->execute;
    
    ...
        $sth->bind_columns ( \( $id, $name, $salary ) );
    
        print "$id\t$name\t$salary\n" while $sth->fetchrow_arrayref;
    
  23. or download this
        my @empl = (undef, undef, undef);
        $sth->execute;
    ...
        $sth->bind_columns ( \( @empl ) );    
    
        print join( "\t", @empl), $/ while $sth->fetchrow_arrayref;
    
  24. or download this
        @empl = ( \$id, \$name, \$salary );
        $sth->execute;
    
        $sth->bind_columns( @empl );
        print "$id\t$name\t$salary\n" while $sth->fetch;
    
  25. or download this
        my %rec = (
            emp_id => undef,
    ...
              "$rec{first_name}\t",
              "$rec{monthly_payment}\n"
                    while $sth->fetchrow_arrayref;
    
  26. or download this
        my @fields = (qw(emp_id first_name monthly_payment));
    
    ...
              "$rec{first_name}\t",
              "$rec{monthly_payment}\n"
            while $sth->fetchrow_arrayref;
    
  27. or download this
    
        use Benchmark (qw(cmpthese));
    ...
    fr_hashref  3858/s        --           -56%        -59%
    man_hashref 8681/s      125%             --         -8%
    fr_arrayref 9416/s      144%             8%          --
    
  28. or download this
        $sth = $dbh->prepare(qq{
            SELECT
    ...
        # using a arrayref
        # columns => id,id
        # 1 1
    

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlmeditation [id://284436]
Approved by larsen
Front-paged by valdez
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (7)
As of 2015-05-29 07:14 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    In my home, the TV remote control is ...









    Results (576 votes), past polls