Skip to content

Instantly share code, notes, and snippets.

@ttakezawa
Created May 23, 2011 05:32
Show Gist options
  • Save ttakezawa/986266 to your computer and use it in GitHub Desktop.
Save ttakezawa/986266 to your computer and use it in GitHub Desktop.
DBI example
#!/usr/bin/perl
use strict;
use warnings;
use DBI;
# connect
my $dbh = DBI->connect(
'dbi:mysql:dbname=xyz',
'user',
'password'
);
# prepared statement (bind multiple values)
my @list = qw(1 3 4 8 9);
my $query = "SELECT id,name FROM users WHERE id IN (" . join(",", map { "?" } @list) . ")";
my $sth = $dbh->prepare($query);
$sth->execute(@list);
while(my ($id, $name) = $sth->fetchrow_array){
print "id = $id, name = $name\n";
}
$sth->finish;
$dbh->disconnect;
#
my @cols = qw/
user_id reg_date user_st serv_st
carrier model_name subscr_id
nickname
/;
my $cols_csv = join(',', map { $_ } @cols);
my $place_holders_csv = join(',', map { '?' } @cols);
my $dbh = DA::getHandle($_::DB_USER_W);
my $sth = $dbh->prepare(<<"SQL");
insert ignore into user_data ($cols_csv) values ($place_holders_csv)
SQL
$sth->execute(map { $user->{$_} } @cols);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment