Perl/Databáze/DBI: Porovnání verzí

Smazaný obsah Přidaný obsah
m správná oborová kategorie
m Robot: Náhrada zastaralého tagu
 
Řádek 5:
== Dokumentace ==
 
<sourcesyntaxhighlight lang="bash">
perldoc DBI
</syntaxhighlight>
</source>
 
== Příklad ==
 
Typický začátek skriptu: Navážeme spojení s databází a vytvoříme handle <tt>$dbh</tt>, pomocí něhož se budeme na naši databázi dále odkazovat:
<sourcesyntaxhighlight lang="perl">
#! /usr/bin/perl -w
# Demonstrace použití DBI
Řádek 27:
my $dbh = DBI->connect($dsn, $user, $password, { RaiseError=>1,AutoCommit=>0 })
|| die "Chyba připojení k databázi č. $DBI::err: $DBI::errstr\n"; # uplatní se jen při RaiseError=>0
</syntaxhighlight>
</source>
 
Jednoduchý příkaz databázi pošleme metodou <tt>do</tt>. Například databázi MySQL řekneme, že s námi má komunikovat v UTF-8 (namísto v defaultním <tt>latin1</tt>):
<sourcesyntaxhighlight lang="perl">
$dbh->do("set names 'utf8'");
</syntaxhighlight>
</source>
 
Typické operace s databází se ale vykonávají kvůli urychlení pomocí metody <tt>prepare()</tt>, která připraví provedení příkazu, a metody a <tt>execute()</tt>, která jej vykoná. Např. vyčtení všech řádků tabulky:
<sourcesyntaxhighlight lang="perl">
my $sth = $dbh->prepare("SELECT * FROM nejakatabulka");
$sth->execute();
</syntaxhighlight>
</source>
 
Všechny řádky pak můžeme přečíst metodou <tt>fetchrow_array</tt>, např:
<sourcesyntaxhighlight lang="perl">
while (my ($jmeno, $prijmeni, $telefon) = $sth->fetchrow_array) {
print "$jmeno $prijmeni: $telefon\n";
}
</syntaxhighlight>
</source>
 
Ukončení skriptu, odpojení od databáze:
<sourcesyntaxhighlight lang="perl">
$dbh->disconnect;
</syntaxhighlight>
</source>
 
== Problémy ==