SELECT
特定のデータを取り出すSQL文です。
指定行の全フィールドをハッシュのリファレンスとして取り出す方法だけ書きます。
use DBI;
$dsn="DBI:mysql:db";
$dbh=DBI->connect($dsn,'user','pass');
$sth=$dbh->prepare("SELECT * FROM Item WHERE ItemId='100')");
$sth->execute;
$dbh->disconnect;
$line=$sth->fetchrow_hashref;
print $line->{'ItemName'};
doではデータが取り出せないのでprepareを使います。
prepareでは、SQL文を準備するだけで実行されないので、executeで実行する。
prepareはステートメントハンドルというのを返し、
fetchrow_hashrefでハッシュのリファレンスが返される。
上の例では、
「Item」という名のテーブルの「ItemId='100'」の行をすべて取り出し、(*だとすべてのフィールド)
その行のフィールド名「ItemName」の内容を取り出している。
fetchrow_hashrefでは1行分のデータが取り出せるが、
複数行のデータをSELECTした場合は、whileをつかって連続でfetchrow_hashrefを使う。
MySQL入門