Perl Language
DBIモジュールを介したデータベースとの簡単な対話
サーチ…
パラメーター
カラム | カラム |
---|---|
$driver | DB用ドライバ、Postgresql用の "Pg"、MySQL用 "mysql" |
$database | あなたのデータベース名 |
$userid | あなたのデータベースID |
$password | データベースのパスワード |
$query | ex: "select * from $ your_table"を入力してください。 |
DBIモジュール
モジュールDBIがあなたのPCにインストールされていることを確認してから、以下の手順に従ってください:
- perlスクリプトでDBIモジュールを使用する
use DBI;
- いくつかの主要なパラメータを宣言する
my $driver = "MyDriver";
my $database = "DB_name";
my $dsn = "DBI:$driver:dbname=$database";
my $userid = "your_user_ID";
my $password = "your_password";
my $tablename = "your_table";
- データベースに接続する
my $dbh = DBI->connect($dsn, $userid, $password);
- あなたの質問を準備する
my $query = $dbh->prepare("Your DB query");
例:
$my_query = qq/SELECT * FROM table WHERE column1 = 2/;
my $query = $dbh->prepare($my_query);
以下のように、クエリ内で変数を使用することもできます。
my $table_name = "table";
my $filter_value = 2;
$my_query = qq/SELECT * FROM $table_name WHERE column1 = $filter_value/;
- クエリを実行する
$query->execute();
*注:注入攻撃を避けるために、プレースホルダを使用する必要があります?
あなたの変数をクエリに入れるのではなく、
例: 'table'のすべてのデータを表示する場合は、column1 = $ value1およびcolumn2 = $ value2:
my $query = $dbh->prepare("SELECT * FROM table WHERE column1 = ? AND column2 = ?;");
$query->execute($value1, $value2);
- データをフレッチする
my @row = $query->fetchrow_array();
データを配列として格納する
または
my $ref = $sth->fetchrow_hashref();
ハッシュリファレンスとしてデータを格納する
- DBの終了と切断
$sth->finish;
$dbh->disconnect();