SQLite+Perl: データを挿入する方法
SQLite+Perlで、事前に作成したテーブルにデータを挿入(追加)する方法をメモっておく。
データを挿入するテーブルは以下の通りである。
user_info(
id integer primary key,
name,
email
)
このテーブルに次の2つのデータを挿入する方法を述べる。
データ1:name=hoge, email=admin@hoge.com
データ2:name=hoge2, email=admin2@hoge.com
データ2:name=hoge2, email=admin2@hoge.com
idは、null を指定して自動的に割り当てることとする。
サンプルコード
#!/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 =
"INSERT INTO user_info VALUES(
null,
?,
?
)";
# (2) データ挿入実行
$hst = $hDB->prepare($sql);
if($hst){
$retval = $hst->execute("hoge","admin\@hoge.com");
if(!$retval){
print $hDB->errstr . "\n";
exit;
}
$retval = $hst->execute("hoge2","admin2\@hoge.com");
if(!$retval){
print $hDB->errstr . "\n";
exit;
}
}
else{
# エラー処理
print $hDB->errstr . "\n";
exit;
}
$hDB->disconnect;
解説
(1) データ挿入のSQL文
データ挿入には、INSERT文を使用する。"id"の部分に"null"を指定しているが、これは自動的に連番を割り当てるためである。続く、二つの値に"?"を指定しているが、実際のデータは"execute"で指定する。2つ以上のデータを連続して挿入(追加)する場合には、このようにすることで若干の高速化を図ることができる(らしい)。
(2) データ挿入実行
そしてSQLを実行する。prepare で準備を行い、execute で先ほど"?"で指定した部分に実際のデータを指定して実行する。
関連記事
トラックバック(0)
このブログ記事に対するトラックバックURL: http://itsmemo.com/mt/mt-tb.cgi/53
※スパム防止のため、管理人がトラックバック内容確認後、公開されます。
コメントする