SQLite+Perl: データを取得する方法
SQLite+Perlで、すでにデータが登録されているテーブルからデータを取得する方法をメモっておく。
テーブルは以下の通りである。
user_info(
id integer primary key,
name,
email
)
登録されているデータは以下の通りである。
データ1:id=1, name=hoge, email=admin@hoge.com
データ2:id=2, name=hoge2, email=admin2@hoge.com
データ2:id=2, name=hoge2, email=admin2@hoge.com
idを指定して、1つずつデータを取得する例を以下に示す。
サンプルコード
#!/usr/bin/perl
use DBI;
$mydb = "testdb";
$hDB = DBI->connect(
"dbi:SQLite:dbname=$mydb","","",{PrintError=>0}
);
if(!$hDB){
print "$DBI::errstr \n";
exit;
}
# (1) データ取得のSQL文
$sql = "SELECT * FROM user_info WHERE id = ?";
# (2) データ取得実行
$hst = $hDB->prepare($sql);
if($hst){
for($id = 1; $id < 3; $id++){
$retval = $hst->execute($id);
if(!$retval){
print $hDB->errstr . "\n";
exit;
}
@data = $hst->fetchrow_array;
print "$data[0], $data[1], $data[2]\n";
}
$hst->finish;
}
else{
# エラー処理
print $hDB->errstr . "\n";
exit;
}
$hDB->disconnect;
解説
(1) データ取得のSQL文
データ取得には、SELECT文を使用する。"id"の部分に"?"を指定しているが、実際のデータは"execute"で指定する。
(2) データ取得実行
そしてSQLを実行する。prepare で準備を行い、execute で先ほど"?"で指定した部分に実際のデータを指定して実行する。ここでは、for文でidに1,2 を指定している。
関連記事
トラックバック(0)
このブログ記事に対するトラックバックURL: http://itsmemo.com/mt/mt-tb.cgi/55
※スパム防止のため、管理人がトラックバック内容確認後、公開されます。
コメントする