スポンサーリンク

DBIは、Perlから様々なデータベースにアクセスするための
データベースインターフェース(Database Interface)です。
DBIの特徴は、特定のデータベースに依存しない汎用性です。
MySQLやOracle等のDBMSの種類やバージョンに依存せずにプログラミング
することが可能になります。

DBD
DBIはインタフェースで、データベースに直接アクセスはしません。
DBDは各データベース用の専用のモジュールです。
DBIはDBDを通して、データベースにアクセスします。

データ作成

この例では、MySQLを利用します。
サンプルプログラム用にデータをmysqlに入れておきます。

% mysql -u root -p test
mysql> create table users(id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, name varchar(32));
mysql> insert into users(name) values("a");
mysql> insert into users(name) values("b");
mysql> insert into users(name) values("c");

DBへの接続

$dbh = DBI->connect($dsn, $user, $password, {'RaiseError' =>1} )


DBの切断

$dbh->disconnect();


DBのエラーメッセージ
エラーがあった場合は、errstrにエラーメッセージが格納されます。

$dbh->errstr


parepared statementを準備する
プリペアドステートメントを作ります。

$sth = $dbh->prepare ( qq { SQL文 } ) or die $dbh->errstr;;



$sth = $dbh->prepare ( qq {
		SELECT * FROM users WHERE name = ?
		} ) or die $dbh->errstr;;

parepared statementを実行する

$rv = $sth->execute() or die $dbh->errstr;;


値を1つバインドするとき

$rv = $sth->execute($value1) or die $dbh->errstr;;


値を3つバインドするとき

$rv = $sth->execute($value1,$value2,$value3) or die $dbh->errstr;;


サンプルプログラム

#!/usr/local/bin/perl -w
use strict;
use warnings;
use DBI;

my $dbi = 'mysql';
my $database = 'test';
my $hostname = 'localhost';
my $dsn = "dbi:$dbi:database=$database;host=$hostname";
my $user = 'root';
my $password = '';

my $rv;
my $dbh;
$dbh = DBI->connect($dsn, $user, $password, {'RaiseError' => 1} )
	or die $dbi->errstr;
my $sth = $dbh->prepare( qq { SELECT * FROM users } )
	or die $dbh->errstr;
$rv = $sth->execute()
	or die $dbh->errstr;
print "$rv\n";  # 取得できた数
while (my @row = $sth->fetchrow_array ) {
	print "@row\n";
}
$dbh->disconnect();
exit;

FreeBSDにp5-DBIとp5-DBD-mysqlをインストールする方法は、 [2008-05-14-1]
を参照してください。

スポンサーリンク
スポンサーリンク
 
いつもシェア、ありがとうございます!


もっと情報を探しませんか?

関連記事

最近の記事

人気のページ

スポンサーリンク
 

過去ログ

2020 : 01 02 03 04 05 06 07 08 09 10 11 12
2019 : 01 02 03 04 05 06 07 08 09 10 11 12
2018 : 01 02 03 04 05 06 07 08 09 10 11 12
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12

サイト

Vim入門

C言語入門

C++入門

JavaScript/Node.js入門

Python入門

FreeBSD入門

Ubuntu入門

セキュリティ入門

パソコン自作入門

ブログ

トップ


プライバシーポリシー