Perl – DBD::mysql 資料庫模組運用

PERL - Practical Extraction and Report Language, 顧名思義為專注於解析資料,及處理報表而產生的語言,在矽谷是相當火紅的,由於其處理資料的方便性大大的超越其他語言,因此,PERL可以在IC設計公司,IT設備製造商,研發公司,會計公司,生物基因研究,物理等產業廣泛的使用。

以下為PERL存取資料庫MySQL所需要的模組及步驟:

#!/usr/bin/perl -w

use strict;  
use DBD::mysql;  
use utf8;  
use Data::Dumper;

#利用hash資料結構便於收納資料庫及主機的資訊
%hostinfo = ( 'database' => 'sugarcrm',
'host' => 'localhost',  
'port’ => '3306′,  
'dbuser' => 'op',  
'dbpasswd' => 'helloworld',  
'table' => 'users' );

#收集登入資料庫所有資訊及功能
$dbinfo = "DBI:mysql:database=$hostinfo{ 'database' };host=$hostinfo{ 'host' };port=$hostinfo{ 'port' }";

# 建立資料庫連線 dbh – DataBase Handler,如有中文則需使用mysql_enable_utf8啟用utf8字元集
$dbh = DBI->connect( $dbinfo, $hostinfo{ 'dbuser' }, $hostinfo{ 'dbpasswd' }, { RaiseError => 1, mysql_enable_utf8 => 1 } );

# 開始準備SQL的陳述(statement), stmt – statement
$stmt = $dbh->prepare( "SQL的指令放置於此" );

# 執行SQL指令
$stmt->execute();

####################################################
#自此之後可以利用DBD::mysql所提供取得資料的methods:
# $stmt->rows 擷取每列資料,並以List的方式回傳
# $stmt->fetchrow_arrayref() 擷取每列資料,以array reference的方式回傳,回傳的資料並依照順序排列
# $stmt->fetchrow_hashref() 擷取每列資料,以hash reference的方式回傳,回傳的資料並不會依照順序排列
####################################################

#結束該SQL陳述
$stmt->finish;