[Melbourne-pm] Perl DBI reference recommendations

Tim Evans tim.evans at sputnikagency.com
Thu Jul 16 00:57:25 PDT 2009

I would add to sam's list ...

        $dbh->{mysql_enable_utf8} or die "couldn't init mysql_enable_utf8";

And as long as the db is set  up to support utf8

        $dbh->do("SET character_set_database=utf8");
        $dbh->do("SET character_set_server=utf8");
        $dbh->do("SET names 'utf8'");

On 16/07/09 5:38 PM, "Sam Watkins" <sam at nipl.net> wrote:

>> I want a handy 'desk' reference with
>> a) Lots of examples
>> b) Easy to read and complete reference material
>> The reason is that I can't hold the details in my head (because I do
>> not DBI regularly) , but I need to keep knocking off dirty that little
>> scripts that run sql queries. I figure the easiest way for that is SQL
>> via DBI rather than an abstraction module.
> Here is a little "handy desk reference" for you, covering all of DBI
> that you should use.  It is shorter than the manpage or a book ;)
> my $dbh =
> DBI->connect("DBI:mysql:database=$database;host=$hostname;port=$port",
> $username, $password);
> my $sth = $dbh->prepare("SELECT foo, bar FROM baz WHERE foo = ? AND bar
> = ?");
> $sth->execute("foovalue", $barvalue);
> while (my $row = $sth->fetchrow_arrayref) {
>   my ($foo, $bar) = @$row;
>   print "$foo  $bar\n";
> }
> $sth->finish;
> You should rarely need to use anything other than the above from DBI.
> keep it simple!
> I highly recommend using the "bind values" stuff with the ?s in the SQL
> and corresponding parameters to execute.  DBI will quote and escape
> values for you correctly so you don't need to worry about SQL injection
> attacks, etc.
> DBI has umpteen different fetch methods, your life will be easier if you
> just use one of them.
> regards,
> Sam
> _______________________________________________
> Melbourne-pm mailing list
> Melbourne-pm at pm.org
> http://mail.pm.org/mailman/listinfo/melbourne-pm

More information about the Melbourne-pm mailing list